質問: vertcat(ch(:,:),ch0(:,:)) のようなイメージで、1つの行列 chに連結させたいです。ch0は、どんどんファイルを読み込んで条件を満たせば連結し、満たさなければ廃棄するといった処理になります。ch0の列は23列で固定されていますが、行数は、まちまちのため、ch0(:,23)になります。chは、どんどん足されますので、行数は膨れあがっていきます。ch(:,23)です。 ちなみに、上記のようなステートメントでは、”添字による代入の次元が一致しません”とエラーになります。
回答: ch(:,23) = vertcat(ch(:,23),ch0(:,23)); の書き方をするとエラーがでているのかと思いますが、 仮にch,ch0が10行だとすると10行のところに10+10の20行のデータを書き込もうとしていることになるので、 エラーがでます。 例えば下記のようにch0分行数を追加するのはいかがでしょうか。。 len = numel(ch(:,23))+numel(ch0(:,23)); ch(1:len,23) = vertcat(ch(:,23),ch0(:,23)); 都度行列サイズを変更していくとメモリ領域を取り直すので、 データが大きいとスピードが遅くなるかもしれません。 23列だけのベクトルにして扱い、 おおよその行数がわかっていればchにあらかじめ大きなサイズをとっておくことも検討されると良いかと思います。