1

C ++に変換する必要があるMatlabコードがあります。1 つのファイルに多数の行列があり、それらを配列 (またはベクトル) に変換したい。これらの行列を効率的に変換する方法が必要です。

f = [   -.000212080863  .000358589677   .002178236305   ...
        -.004159358782  -.010131117538  .023408156762   ...
        .028168029062   -.091920010549  -.052043163216  ...
        .421566206729   .774289603740   .437991626228   ...
        -.062035963906  -.105574208706  .041289208741   ...
        .032683574283   -.019761779012  -.009164231153  ...
        .006764185419   .002433373209   -.001662863769  ...
        -.000638131296  .000302259520   .000140541149   ...
        -.000041340484  -.000021315014  .000003734597   ...
        .000002063806   -.000000167408  -.000000095158  ];

私はこのようなことを試しましたが、すべての試行でいくつかのエラーが発生します。

int* first;
first = new int[5];
first = {1,2,3,4,5};

注:コンマを入れ[{手動で変更できます。

ありがとう、

4

3 に答える 3

2

値が定数の場合 (値を変更するたびに再コンパイルしても問題ありません)、次のことができます。

double f[] = {  -.000212080863,  .000358589677,   .002178236305,   ... };

(コンマの追加と、角括弧の代わりに中括弧に注意してください)。

値が変化している場合は、 a を使用vector<double> f;し、入力を少しクリーンアップして、次のようなものを使用します。

ifstream infile("numbers.txt"); 
while(infile >> value) 
{ 
   f.push_back(value); 
}
于 2013-07-11T10:41:24.457 に答える