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 怎么把元胞数组取出来的内容放到一个新的矩阵的主要内容,如果未能解决你的问题,请参考以下文章

Matlab怎么把元胞数组转化成矩阵

MATLAB中,我要把元胞数组中的字符串提取出来,应该用啥函数?

MATLAB将元胞数组中特定行列转换为矩阵

请问如何使用MATLAB进行元胞数组批量提取数据。

matlab中如何寻找字符串在元胞数组中的位置?

matlab中的元胞数组中的数字是字符型保存,存在nodata。。如何转换成数值型矩阵????