2

セル配列とベクトルがあり、ベクトルの各座標を同じ場所の別のセルに割り当てたいと考えています。たとえば、ベクトルの j 座標は、(j,1) セルの (k,l) 座標になります。疑似 matlab では、次のようになります。

myCell{:,1}(k,l)=myVector;

ループするだけでそれを行う良い方法はありますか? (性能が問題です。)

小さな例:

    myCell=cell(2,4);
    myV=[1;2];
    %what I wish to change:
    for j=1:size(myV,1)
        myCell{j,1}(1,1)=myV(j)
    end

前もって感謝します!

4

1 に答える 1

3

myVector のデータ型に応じて、次の 2 つのコマンドのいずれかを使用することになります。

mat2cell または num2cell

Matlab のヘルプ ページには、関数を呼び出すさまざまな方法が詳しく説明されています。これは、データの凝ったグループ化などを行いたい場合に備えてです。

mat2cell: http://www.mathworks.com/help/techdoc/ref/mat2cell.html

num2cell: http://www.mathworks.com/help/techdoc/ref/num2cell.html

サンプルコード:

myCell=cell(2,4);
myV=[1;2];
% %what I wish to change:
% for j=1:size(myV,1)
%     myCell{j,1}(1,1)=myV(j)
% end
myCell(:,1) = num2cell(myV);
于 2012-06-28T12:11:09.853 に答える