Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 MATLAB:结构的二维数组(包含向量)到3-D数组?

我有一个二维结构'cell'数组,每个数组包含许多向量:

cell(1,1).U = [1 2 3]; cell(1,2).U = [4 5 6]; cell(2,1).U = [7 8 9]; cell(2,2).U = [0 1 2]; 我想将数据提取到3-D数组A(i,j,k)中。

使用单元格样式提取将返回一个1x3的单元格,其内容为

>> {cell.U} ans = {[cell(1,1).U] [cell(1,2).U] [cell(2,1).U] [cell(2,2).U]} 因此,使用cell2mat()将其转换为矩阵,如下所示:

cell2mat(ans) 返回一个3x4数组。

理想情况下,我想要一个2x2x3数组,以便保留索引i和j。有什么办法(短循环)来做到这一点?



回答:

使用CATRESHAPE 。另外,不要调用您的可变cell ,因为这是一个内置函数。

>> c(1,1).U = [1 2 3]; c(1,2).U = [4 5 6]; c(2,1).U = [7 8 9]; c(2,2).U = [0 1 2]; >> out = cat(1,cU) >> out = reshape(out,2,2,3) out(:,:,1) = 1 4 7 0 out(:,:,2) = 2 5 8 1 out(:,:,3) = 3 6 9 2

更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 05:08


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.