我正在使用函数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)
我可以用循环来做。有没有其他更优雅的方式怎么做?
答案 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
更优雅