matlab中不同维度的cell合并,不用for循环应该怎么做

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中不同维度的cell合并,不用for循环应该怎么做相关的知识,希望对你有一定的参考价值。

例如:
A=[1];[2];[3];
B=[4];[5];[6];[7];
C=[1] [4];[2] [5];[3] [6];[] [7]
各位大大,C这样的cell需要怎么做?

参考技术A a=length(A);
b=length(B);
m=b-a;
a0=[];
A=[A;repmat(a0,m,1)];
for i=1:b
    C(i,1)=A(i) B(i);
end

matlab 如何把cell转为三维矩阵

我有一个cell是1*4cell的,每一个cell有1400*720的二维矩阵,如何把她转为一个1400*720*4的三维矩阵?

参考技术A 没有别的办法,你这个cell in cell,必须用for,而且用for也没有你说的那么夸张,我这里做了一个测试,用了一个30万行的你这样的矩阵进行了一下实验,也就用了1分钟。
下边是测试程序和测试结果(点击图放大看):
a='k','1','2';'k','4','2';'k','5','3' ;
b=repmat(a,[1e5,1]);
c=cell(1e5,3);
tic
for index=1:length(b);
c(index,:)=bindex;
end
toc
参考技术B dt = cell(1,4);
for p = 1:4
    dtp = rand(4,7);
end
R = zeros(4,7,4);
for p = 1:4
    R(:,:,p) = cell2mat(dtp);
end

追问

恩恩,非常感谢!!

本回答被提问者采纳

以上是关于matlab中不同维度的cell合并,不用for循环应该怎么做的主要内容,如果未能解决你的问题,请参考以下文章

Matlab中元胞数组与构架数组有啥不同?

Matlab报错:串联的矩阵维度不一致

如何提取出cell中具体数据 matlab

matlab 如何把三维矩阵拼接

matlab 如何把cell转为三维矩阵

matlab如何合并矩阵两列为一列?