将struct类型转换为矩阵八度

时间:2017-03-23 09:28:22

标签: matlab file-io struct octave mat-file

我的myfile.mat包含3000x35尺寸数据。当我将其加载到变量中时:

a = load('myfile.mat')

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

2 个答案:

答案 0 :(得分:4)

(这个答案对MATLAB有效,我不确定它在Octave中是否与完全相同)

您有几种选择:

选项1:

如果import os print(os.linesep) 文件只包含一个变量,则可以执行以下操作:

.mat

选项2:

您需要在保存时知道变量的名称,现在这是a = struct2array(load('myfile.mat')); % MATLAB syntax a = [struct2cell(load('myfile.mat')){:}]; % Octave syntax 中字段的名称。然后你可以使用:

访问它
struct

选项3(不推荐!):

只需删除表达式的a = load('myfile.mat'); a = a.data; 部分

即可
a =

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

答案 1 :(得分:0)

我自己找到了解决方案。我确实喜欢这个

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

现在我可以使用索引来访问a as matrix的值,像这样的(1,2)。 它是八度音阶。我希望它在matlab中类似。