MATLAB - 从结构
问题描述:
访问矢量我有一个名为MATLAB - 从结构
Fruitbasket=struct('apples',{[1] [2] [3] [4]},'bananas',[],'berries',[],'melons',[])
我不知道如何在矢量形式得到Fruitbaskets.apples
1×4结构(例如,[1 2 3 4]
)。
我所得到的Fruitbaskets.apples
是ans=1;ans=2;ans=3;ans=4
。
答
编辑:它看起来像你想有一个结构数组。醒目这个值的一个非常简单的解决方案显然循环:
for ii=1:size(Fruitbasket,2)
app(ii)=Fruitbasket(ii).apples; % or getfield(Fruitbasket(ii),'apples');
end
那是因为你正在创建结构的数组,而不是使用数组的结构!
Fruitbasket=struct('apples',{[1] [2] [3] [4]},...)
创建4个Fruitbaskets,每个Fruitbaskets都有一个数字。你可以通过做Fruitbasket(2).apples
来验证。如果您希望字段有一个数组,请不要将其定义为cell array
总线作为vector
。单元阵列用{}
和[]
确定。以下将创建一个带有向量的结构体:
Fruitbasket=struct('apples',[1 2 3 4],'bananas',[],'berries',[],'melons',[])
实际上对不起我的错。我忘了提及,我有4个fruitbaskets。我仍然想要以 – Agnel
的矢量形式获得Fruitbaskets.apples,那是行得通的。如果它是[A] [B] [C] [D]而不是[1] [2] [3] [4] ...错误:'从char转换到单元格是不可能的。我尝试过mat2cell但是不知道 – Agnel
@Agnel什么是'A'?你的意思是'A'作为一个字符串? –