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 中的数据类型,您最终将使用以下两个命令之一。

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