Jes*_*par 0 matlab struct matrix matlab-struct
有没有一种方法可以将结构(2个字段,每个字段具有52个变量)转换为矩阵(2x52)?谢谢
struct:
sym (1x53)
prob (1x53)
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法,这给了我一个1 x 1的细胞阵列
symProb = reshape({x.sym}, size(53));
Run Code Online (Sandbox Code Playgroud)
我也尝试过struct2cell这样做。
可能最简单的事情(因为它只有两个字段)是使用 cat
result = cat(1, x.sym, x.prob);
Run Code Online (Sandbox Code Playgroud)
或者您可以只使用[]和;
result = [x.sym; x.prob]
Run Code Online (Sandbox Code Playgroud)
如果您想要一个更通用的解决方案,则可以struct2array进行一些调整
result = reshape(struct2array(x), [], numel(x)).';
Run Code Online (Sandbox Code Playgroud)
请注意,所有这些假设中的数据sym和prob实际上是相同的数据类型,因此能够被放置在同一阵列内,否则单元阵列是拿这两个领域的唯一途径。
另外你的代码产生1×1单元阵列,因为你包装你的数据x.sym 中一个的1 x 1单元阵列。