簡體   English   中英

將結構類型轉換為矩陣八度

[英]convert struct type to matrix octave

我有一個myfile.mat ,其中包含3000x35大小的數據。 當我將其加載到變量中時:

a = load('myfile.mat')

它給出大小為1x1 struct 我怎樣才能得到確切的形式作為矩陣。 這是必需的,因為我需要更改某些列值。

(此答案對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');

然后,該文件中的變量將“神奇地生成”在您的工作空間中。 不建議這樣做,因為它使創建某些變量時很難( 不可能? )。

我自己找到了解決方案。 我確實是這樣

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

這樣,我現在可以像這樣使用索引a(1,2)訪問as矩陣的值。 以八度為單位。 我希望在Matlab中也是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM