1

関数meshgridを使用して 2 つの行列を作成し、関数を使用num2cellして 1 つの行列からセル配列を作成しています。

latVectr = 1:1:5;
longVectr = 10:2:20;
[X,Y] = meshgrid(latVectr,longVectr);

CELX = num2cell(X);

次のように、作成したセル配列のセルに 2 番目の行列の変数を分配したいと思います。

X{1,1}(1,2) = Y(1,1);
X{1,2}(1,2) = Y(1,2);
;
;
;
;X(n,m)(1,1) = Y(n,m)

私はループでそれを行うことができます。他にもっとエレガントな方法はありますか?

4

2 に答える 2

1

ご希望のようCELX{ k, l }です[ X(k,l) Y(k,l) ]
これは次の方法で実行できます

CELX = mat2cell( cat(3, X, Y ), ones(size(X,1),1), ones(1, size(X,2)), 2 );

編集:
結果のセルの次元を修正することができます

CELX = cellfun( @squeeze, CELX, 'UniformOutput', false );
于 2013-02-25T10:40:11.777 に答える
1

を使用した別のアプローチcellfun

CELX = cellfun(@(x,y) [x,y], num2cell(X), num2cell(Y), 'UniformOutput', false );

実際、このソリューションは他のソリューションよりもエレガントだと思います

于 2013-02-25T15:16:52.357 に答える