[英]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.