1

我正在使用函数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)

我可以用循环来做到这一点。还有其他更优雅的方法吗?

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 回答