将结构类型转换为矩阵八度
convert struct type to matrix octave
我有一个 myfile.mat
包含 3000x35
尺寸数据。当我将它加载到变量中时:
a = load('myfile.mat')
它给出 struct
大小 1x1
。我怎样才能得到矩阵的精确形式。这是必需的,因为我需要更改某些列值。
(这个答案对 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');
然后此文件中的变量将 "magically spawn" 在您的工作区中。不推荐这样做,因为它很难(不可能?)查看某些变量何时创建。
我自己找到了解决方案。我喜欢这个
a = load('myfile.mat')
a = a.data
所以现在我可以通过索引访问 a as 矩阵的值,a(1,2) 就像这样。
它是八度的。我希望它在 matlab 中是相似的。
我有一个 myfile.mat
包含 3000x35
尺寸数据。当我将它加载到变量中时:
a = load('myfile.mat')
它给出 struct
大小 1x1
。我怎样才能得到矩阵的精确形式。这是必需的,因为我需要更改某些列值。
(这个答案对 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');
然后此文件中的变量将 "magically spawn" 在您的工作区中。不推荐这样做,因为它很难(不可能?)查看某些变量何时创建。
我自己找到了解决方案。我喜欢这个
a = load('myfile.mat')
a = a.data
所以现在我可以通过索引访问 a as 矩阵的值,a(1,2) 就像这样。 它是八度的。我希望它在 matlab 中是相似的。