Matlab 从向量中为几个单元格赋值

Matlab 从向量中为几个单元格赋值,matlab,Matlab,我有一个单元格数组和一个向量,我想把向量的每个坐标分配给同一位置的不同单元格。 例如,向量中的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坐标成为(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

提前谢谢

根据myVector中的数据类型,最终将使用以下两个命令之一

mat2cell或num2cell

Matlab中的帮助页面详细介绍了调用函数的不同方法,以防您需要对数据进行一些奇特的分组等等

mat2cell:

num2单元:

示例代码:

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);

如果你发布一个关于你的输入和所需输出的小例子,你会帮助你自己。我不认为我是唯一一个乐于剪切、粘贴和摆弄的SOer,但却懒得为你的问题想出一些测试数据。类似的问题:我的问题是作业,但感谢链接!我尝试了这个,但是我无法将我在中创建的单元格分配给myCell{:,1}。我应该用另一种方式调用我想要签名的单元格吗?myCell(:,1)=num2单元格(myV)对我来说工作得很好。尝试使用常规的平滑大括号而不是卷曲大括号。当然,这只是替换了示例代码中的循环。@BenA。这不是最好的办法。我不知道最好的方法是什么,但我可以说cellfun比这更容易