Shy*_*dka 0 file-io matlab struct octave mat-file
我有一个myfile.mat包含3000x35大小数据的文件。当我将其加载到变量中时:
a = load('myfile.mat')
Run Code Online (Sandbox Code Playgroud)
它给出struct了大小1x1。我怎样才能得到确切的形式作为矩阵。这是必需的,因为我需要更改某些列值。
(此答案对MATLAB有效,我不确定它在Octave中的工作方式是否完全相同)
您有几种选择:
如果.mat文件仅包含一个变量,则可以执行以下操作:
a = struct2array(load('myfile.mat')); % MATLAB syntax
a = [struct2cell(load('myfile.mat')){:}]; % Octave syntax
Run Code Online (Sandbox Code Playgroud)
您需要在保存时知道变量的名称,现在它是this中字段的名称struct。然后,您可以使用以下命令访问它:
a = load('myfile.mat'); a = a.data;
Run Code Online (Sandbox Code Playgroud)
只需删除a =表达式的一部分,
load('myfile.mat');
Run Code Online (Sandbox Code Playgroud)
然后,该文件中的变量将“神奇地生成”在您的工作空间中。不建议这样做,因为它使创建某些变量时很难(不可能?)。