MATLAB编程解决多输出索引问题

记录一个有关MATLAB的cell,困惑我很久的问题,假设有一个n*1的cell,里面放着一些结构体,如果使用花括号切片访问cell块会报错“需要花括号或点索引表达式中的一个输出,但结果有x个”。

下面给出一个使用cellfun的解决方案,详细看测试代码,


clc
clear
my_cell = cell(1, 10);
for i = 1 : 10
  s = struct;
  s.id = i;
  my_cell{i} = s;
end
% 可正常访问
disp(my_cell{1}.id);
% 报错:需要花括号或点索引表达式中的一个输出,但结果有 10 个。
% disp(sum(my_cell{:}.id));
% 解决方案
disp(sum(cellfun(@(x) x.id, my_cell(:))))

使用cellfun把.id操作运用到my_cell中的每个struct中,得到一个列向量,就可以对列向量进行操作了。

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空