Matlab 将结构类型转换为矩阵倍频程

Matlab 将结构类型转换为矩阵倍频程,matlab,file-io,struct,octave,mat-file,Matlab,File Io,Struct,Octave,Mat File,我有一个myfile.mat,其中包含3000x35大小数据。当我将其加载到变量中时: a = load('myfile.mat') 它给出了大小为1x1的struct。如何得到矩阵的精确形式。这是必需的,因为我需要更改某些列值 (这个答案对于MATLAB是有效的,我不确定它在八度音程中的工作方式是否完全相同) 您有几个选择: 备选案文1: 如果.mat文件仅包含一个变量,则可以执行以下操作: a = struct2array(load('myfile.mat')); % MATLA

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

a = load('myfile.mat')
它给出了大小为1x1的
struct
。如何得到矩阵的精确形式。这是必需的,因为我需要更改某些列值

(这个答案对于MATLAB是有效的,我不确定它在八度音程中的工作方式是否完全相同)


您有几个选择:

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

a = struct2array(load('myfile.mat'));     % MATLAB syntax
a = [struct2cell(load('myfile.mat')){:}]; % Octave syntax
备选案文2: 您需要知道保存时变量的名称,该名称现在是此
结构中某个字段的名称。然后,您可以使用以下方式访问它:

a = load('myfile.mat'); a = a.data;
备选方案3(未推荐!): 只需删除表达式的
a=
部分

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

(这个答案对于MATLAB是有效的,我不确定它在八度音程中的工作方式是否完全相同)


您有几个选择:

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

a = struct2array(load('myfile.mat'));     % MATLAB syntax
a = [struct2cell(load('myfile.mat')){:}]; % Octave syntax
备选案文2: 您需要知道保存时变量的名称,该名称现在是此
结构中某个字段的名称。然后,您可以使用以下方式访问它:

a = load('myfile.mat'); a = a.data;
备选方案3(未推荐!): 只需删除表达式的
a=
部分

load('myfile.mat');

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

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

a = load('myfile.mat')
a = a.data
现在我可以通过索引来访问a矩阵的值,a(1,2)是这样的。
它是八度的。我希望它在matlab中是类似的

我自己找到了解决办法。我确实喜欢这个

a = load('myfile.mat')
a = a.data
现在我可以通过索引来访问a矩阵的值,a(1,2)是这样的。
它是八度的。我希望它在matlab中是类似的

如果您只是加载('myfile.mat')
,会发生什么?至少在Matlab中,这不应该给你一个结构,而是你的矩阵。如果你只是
加载('myfile.mat')
,会发生什么?至少在Matlab中,这不应该给你一个结构,而是你的矩阵。对于选项1,它给我的错误是八度音阶中的“error:'struct2array'”。它可能适用于matlab,但不适用于八度。@Shyamkkhadka我添加了等效的八度语法。试试看!有趣的是,struct2array是否在matlab的任何地方都有文档记录?在2016b中,如果我键入“help struct2array”,我会得到一行:“struct2array将带双精度的结构转换为数组。”但我找不到任何进一步的内容,因此请参见struct2cell,在mathworks.com上搜索最新文档会返回“struct2array无结果”@NickJ该函数由3行组成。。。只要打开它的.m文件,您就会看到。:)我对倍频程做了一点代码贡献,所以我将继续往下看。:)对于选项1,它给我的错误是八度的“error:'struct2array'”。它可能适用于matlab,但不适用于八度。@Shyamkkhadka我添加了等效的八度语法。试试看!有趣的是,struct2array是否在matlab的任何地方都有文档记录?在2016b中,如果我键入“help struct2array”,我会得到一行:“struct2array将带双精度的结构转换为数组。”但我找不到任何进一步的内容,因此请参见struct2cell,在mathworks.com上搜索最新文档会返回“struct2array无结果”@NickJ该函数由3行组成。。。打开它的.m文件,您会看到的。:)我对倍频程做了一点代码贡献,所以我将继续往下看。:)