如何在MATLAB中存储字段变量中进行预列



我正在通过附加值附加在向量中的for循环中计算出的字段变量,但是我想先先对性能进行预测。我试图矢量化此操作,但它并没有给我我想完成的工作。我以下面的操作为例。我如何在此进行预先分配?速度。

j=('load raw.mat');
var=fields(j);
val_mat=[];
kk=fieldnames(j);
for i=(length(kk)-Var_no)+1:Var_no+(length(kk)-Var_no)
val_mat=[val_mat j.(var{i})];
end

基于您的代码,您似乎正在尝试抓住存储在raw.mat中的所有变量并将其置为它们。为此,您可以用struct2cell替换循环,以将所有字段值转换为值的单元格数组,然后使用cat将它们串联

data = load('raw.mat');
values = struct2cell(data);
val_mat = cat(2, values{:});

由于我们已删除了循环,因此无需预先分配。

我还借此自由将您的代码重写为有效的MATLAB代码。

相关内容

  • 没有找到相关文章

最新更新