繁体   English   中英

将结构类型转换为矩阵八度

[英]convert struct type to matrix octave

我有一个myfile.mat ,其中包含3000x35大小的数据。 当我将其加载到变量中时:

a = load('myfile.mat')

它给出大小为1x1 struct 我怎样才能得到确切的形式作为矩阵。 这是必需的,因为我需要更改某些列值。

(此答案对MATLAB有效,我不确定它在Octave中的工作方式是否完全相同


您有几种选择:

选项1:

如果.mat文件仅包含一个变量,则可以执行以下操作:

a = struct2array(load('myfile.mat'));     % MATLAB syntax
a = [struct2cell(load('myfile.mat')){:}]; % Octave syntax

选项2:

您需要在保存时知道变量的名称,该名称现在是此struct字段的名称。 然后,您可以使用以下命令访问它:

a = load('myfile.mat'); a = a.data;

选项3(不建议使用!):

只需删除表达式的a =部分,

load('myfile.mat');

然后,该文件中的变量将“神奇地生成”在您的工作空间中。 不建议这样做,因为它使创建某些变量时很难( 不可能? )。

我自己找到了解决方案。 我确实是这样

a = load('myfile.mat')
a = a.data

这样,我现在可以像这样使用索引a(1,2)访问as矩阵的值。 以八度为单位。 我希望在Matlab中也是如此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM