matlab 怎么把元胞数组取出来的内容放到一个新的矩阵
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 怎么把元胞数组取出来的内容放到一个新的矩阵相关的知识,希望对你有一定的参考价值。
有一个元胞数组 dp_image 如图 想把里面的内容取出来 组成一个新的 20*61*73*61 的这样一个数组 前面的20代表样本个数 后面的是图像的三个维度 恳请各位知道的前辈帮帮忙
参考技术A dp_imagei, 注意是大括号,表示取 第 i 个 胞数据。定义一个4维向量,最好 把 20 定义成 最后一维
dp_new = zeros(61,73,61,20); 然后赋值 参考技术B
每个单元都是相同维数的三维数组吗?可以用
permute(cat(4,dp_image:),[4 1 2 3])举例:
>> c1=rand(3,4,5);>> c2=rand(3,4,5);
>> size(permute(cat(4,c:),[4 1 2 3]))
ans =
2 3 4 5本回答被提问者和网友采纳
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 怎么把元胞数组取出来的内容放到一个新的矩阵的主要内容,如果未能解决你的问题,请参考以下文章