[英]Is it possible to convert octave type BoolMatrix to Matrix? Calling norm(BoolMatrix) fails
[英]convert struct type to matrix octave
我有一个myfile.mat
,其中包含3000x35
大小的数据。 当我将其加载到变量中时:
a = load('myfile.mat')
它给出大小为1x1
struct
。 我怎样才能得到确切的形式作为矩阵。 这是必需的,因为我需要更改某些列值。
(此答案对MATLAB有效,我不确定它在Octave中的工作方式是否完全相同 )
您有几种选择:
如果.mat
文件仅包含一个变量,则可以执行以下操作:
a = struct2array(load('myfile.mat')); % MATLAB syntax
a = [struct2cell(load('myfile.mat')){:}]; % Octave syntax
您需要在保存时知道变量的名称,该名称现在是此struct
字段的名称。 然后,您可以使用以下命令访问它:
a = load('myfile.mat'); a = a.data;
只需删除表达式的a =
部分,
load('myfile.mat');
然后,该文件中的变量将“神奇地生成”在您的工作空间中。 不建议这样做,因为它使创建某些变量时很难( 不可能? )。
我自己找到了解决方案。 我确实是这样
a = load('myfile.mat')
a = a.data
这样,我现在可以像这样使用索引a(1,2)访问as矩阵的值。 以八度为单位。 我希望在Matlab中也是如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.