有没有办法将结构(每个包含52个变量的2个字段)转换为矩阵(2x52)?谢谢
struct:
sym (1x53)
prob (1x53)
我尝试过以下操作,它给了我一个1 x 1的单元格数组
symProb = reshape({x.sym}, size(53));
我也尝试过struct2cell
同样的事情。
答案 0 :(得分:4)
可能最简单的事情(因为它只有两个字段),只需使用cat
result = cat(1, x.sym, x.prob);
或者您可以使用[]
和;
result = [x.sym; x.prob]
如果您想要更通用的解决方案,可以使用struct2array
进行一些重塑
result = reshape(struct2array(x), [], numel(x)).';
请注意,所有这些都假定sym
和prob
中的数据实际上是相同的数据类型,因此可以放在同一个数组中,否则单元格数组是唯一的方法两个领域。
此外,您的代码产生的是1 x 1单元格数组,因为您要在x.sym
单元格数组的中包装数据1 x 1
。
答案 1 :(得分:0)
另一种方法如下:
symVec = [x.sym(:)]
probVec = [x.prob(:)
答案 2 :(得分:0)
您可以使用此:
cell2mat(struct2cell(YourStructure))