for ループ内でその配列に単一の列をアタッチして、配列を作成しようとしています。最初にゼロの列を初期化し、読み取った新しい列を更新されたベクトルの右側に配置することでそれを行っています。しかし残念なことに、これは部分的にしか機能せず、制限を設けた後でなければ機能しません。つまり、新しい各ベクトルの最初の - たとえば - 500 行のみを保持します。
問題の次の解決策については、まず、このゼロ列ベクトルが最後の配列に表示されない理由がわかりません! もう 1 つの問題は、最終的な配列の合計列数は最初からわかっていても、個々の列の実際の行数がわからない場合があることです。実際には、最終的な配列のデフォルトの行数として、添付される異なる単一の列の中でより大きな行数を考慮したいので、ベストプラクティスは列の整数に実行することであると思いますより大きな行数を決定し、最初の配列の適切な次元を設定して単一の列データで埋め、最後に後者のデータに基づいて最初のものを埋めます。
どんな提案でも大歓迎です!
data = zeros(500,1);
for symbol = 1:length(symbol_list),
[hist_data] = retrieve_data(symbol_list(symbol));
data = [data hist_data(1:500)];
end
編集:
入力/出力の例を挙げましょう。
次の 3 つの列を配置したい (各反復でそのうちの 1 つを取得します)
0.402513860949959 0.401546899405730 0.405949059210334
0.401396441661866 0.400288848738267 0.403936753893693
0.400862023741474 0.402233108860710 0.404473368644797
0.411161714570851 0.413612748989126 0.409437055092511
0 0.414870799656589 0.415071509979105
0 0.416586323294039 0
1 つが隣り合って、最終的に次の表になります (行数が大きいが同じ数のものだけを保持します。したがって、ここでは 2 番目の列のみを保持します)。
0.401546899405730
0.400288848738267
0.402233108860710
0.413612748989126
0.414870799656589
0.416586323294039
言い換えれば、非常に多くの列を並べて接続したいということです。それらの大部分は、同じ長さの非常に大きな行を持っています。ただし、行の数 (長さ) が任意に小さいものもあります。この「大きな」数の行を見つけ、この「大きな」長さに対応する列のみを保持し、最終的に隣り合わせに配置します。