MatrixもしくはComplexMatrixクラスを利用します。
#include <iostream> #include <octave/config.h> #include <octave/CColVector.h> #include <octave/CMatrix.h> using namespace std; int main() { cout.precision(3); cout.setf(ios::fixed); Complex const IU(0.0, 1.0); ComplexMatrix A(2, 3), B(3,2); ComplexColumnVector v(3); A(0,0) = 1.0; A(0,1) = 2.0; A(0,2) = 3.0; A(1,0) = 4.0; A(1,1) = 5.0; A(1,2) = 6.0; B(0,0) = 1.0*IU; B(0,1) = 4.0*IU; B(1,0) = 2.0*IU; B(1,1) = 5.0*IU; B(2,0) = 3.0*IU; B(2,1) = 6.0*IU; v(0) = 7.0; v(1) = 8.0; v(2) = 9.0; cout << "A = " << endl << A << endl; cout << "A.rows() = " << A.rows() << ", A.cols() = " << A.cols() << endl << endl; cout << "B = " << endl << B << endl; cout << "v = " << endl << v << endl; cout << "A*B = " << endl << A*B << endl; cout << "A*v = " << endl << A*v << endl; cout << "2*A+B^(t) = " << endl << 2.0*A + B.transpose() << endl; }
A = (1.000,0.000) (2.000,0.000) (3.000,0.000) (4.000,0.000) (5.000,0.000) (6.000,0.000) A.rows() = 2, A.cols() = 3 B = (0.000,1.000) (0.000,4.000) (0.000,2.000) (0.000,5.000) (0.000,3.000) (0.000,6.000) v = (7.000,0.000) (8.000,0.000) (9.000,0.000) A*B = (0.000,14.000) (0.000,32.000) (0.000,32.000) (0.000,77.000) A*v = (50.000,0.000) (122.000,0.000) 2*A+B^(t) = (2.000,1.000) (4.000,2.000) (6.000,3.000) (8.000,4.000) (10.000,5.000) (12.000,6.000)
&ref(): File not found: "wikilogo1.png" at page "行列演算(加減乗算)を行いたい"; |