许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  MATLAB编程解决多输出索引问题

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

阅读数 1503
点赞 23
article_banner

记录一个有关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中,得到一个列向量,就可以对列向量进行操作了。

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


武汉格发信息技术有限公司,格发许可优化管理系统可以帮你评估贵公司软件许可的真实需求,再低成本合规性管理软件许可,帮助贵司提高软件投资回报率,为软件采购、使用提供科学决策依据。支持的软件有: CAD,CAE,PDM,PLM,Catia,Ugnx, AutoCAD, Pro/E, Solidworks ,Hyperworks, Protel,CAXA,OpenWorks LandMark,MATLAB,Enovia,Winchill,TeamCenter,MathCAD,Ansys, Abaqus,ls-dyna, Fluent, MSC,Bentley,License,UG,ug,catia,Dassault Systèmes,AutoDesk,Altair,autocad,PTC,SolidWorks,Ansys,Siemens PLM Software,Paradigm,Mathworks,Borland,AVEVA,ESRI,hP,Solibri,Progman,Leica,Cadence,IBM,SIMULIA,Citrix,Sybase,Schlumberger,MSC Products...

相关文章
QR Code
微信扫一扫,欢迎咨询~
customer

online

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

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空