将变量从矩阵追加(分配)到单元格数组

时间:2013-02-25 10:36:07

标签: arrays matlab matrix

我正在使用函数meshgrid创建2个矩阵并使用函数num2cell从一个矩阵创建一个单元格数组。

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

CELX = num2cell(X);

我想将第二个矩阵的变量分配到创建的单元格数组的单元格中,如下所示:

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

我可以用循环来做。有没有其他更优雅的方式怎么做?

2 个答案:

答案 0 :(得分: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 );

答案 1 :(得分:1)

使用cellfun

的另一种方法
CELX = cellfun(@(x,y) [x,y], num2cell(X), num2cell(Y), 'UniformOutput', false );

事实上,我觉得这个解决方案比我的other solution

更优雅