這幾天在用matlab,做深度學習,一直想訪問struct中的資料,但是每次都是只能訪問到乙個,有些苦悶。在網上搜了一圈,也沒有發現,後來在官網上發現了乙個方法,看來,matlab的文件還是很可靠的。特此在這裡mark一下。
建立乙個 1×3 的結構體 s,其中包含字段 f:
s(1).f = 1;
s(2).f = 'two';
s(3).f = 3 * ones(3);
此時,如果我想訪問s.f這三個值,一般是這樣做
t = s.f; % 但是這樣只能獲得乙個值
您不能使用 v = s.f 語法將該列表分配給單個變數,因為各欄位包含的資料型別可能不同。但是,您可以將列表項分配給相同數量的變數,例如
[v1, v2, v3] = s.f;
% 或者分配給元胞陣列
c = ;
如果所有欄位均包含相同型別的資料並且可以構成超矩形,則可以串聯列表項。例如,建立乙個包含字段 f(具有數值標量)的結構體 nums,然後串聯欄位中的資料:
nums(1).f = 1;
nums(2).f = 2;
nums(3).f = 3;
allnums = [nums.f]
% 返回
allnums=
1 2 3
matlab 結構 struct 陣列
要在maltab中實現比較複雜的程式設計,就不能不用struct型別。而且在matlab中實現struct比c中更為方便。結構陣列的建立 matlab提供了兩種定義結構的方式 直接應用和使用struct函式。1.使用直接引用方式定義結構 與建立數值型陣列一樣,建立新struct物件不需要事先申明,可...
matlab中struct結構體如何排序
首先我的結構體資料是這個樣子的 第一步按照id,也就是字串對結構體資料進行排序 a importdata location b,index sort a.textdata 得到的index就是我們後面矩陣元素需要排序的順序 m a.data 從a中提取出來data資料集 m m index,按照te...
Matlab 之 資料元素訪問
matlab的含義是矩陣實驗室,其特徵之一就是資料的向量化操作,藉此提公升軟體執行效率。那麼,必然會涉及資料元素的訪問。matlab主要支援下面一些形式的訪問 1 array inde a i 2 cell index c 3 struct field s.fieldname 不同的訪問方式,效率差...