此文僅將在matlab除錯過程中發現的乙個易忽略的問題作乙個記錄。程式設計如下讀取結構體target中的資料,target結構體如下所示:
**如下:
tr_ind=find(img.images.set==1);
te_ind=find(img.images.set==3);
train.feature=target.feature;
train.mask=target.mask;
train.size=target.size;
test.feature=target.feature;
test.mask=target.mask;
test.size=target.size;
如此**,在train與test中只賦值了target各域中的乙個元素,將上述**中的{}改為()後,成功讀取tr_ind和te_ind索引對應的所有內容,如下**:
tr_ind=find(img.images.set==1);
te_ind=find(img.images.set==3);
train.feature=target.feature(tr_ind);
train.mask=target.mask(tr_ind);
train.size=target.size(tr_ind);
test.feature=target.feature(te_ind);
test.mask=target.mask(te_ind);
test.size=target.size(te_ind);
當然,這也涉及到()與讀取元胞還是元胞內容的區別,但是易被忽略。
參考:
1. 關於matlab下的cell元胞與struct結構體
Matlab中的元胞陣列
元胞陣列 cell array 將型別不同的相關資料整合到乙個單一的變數中,使得大量相關資料的引用和處理變得簡單方便。也就是說cell元胞陣列,儲存不同型別的資料。建立方法有3種 直接賦值法 利用函式cell 利用直接建立元胞陣列的所有單元。通過賦值語句把值賦到元胞陣列的乙個單元中,但每一次賦值只能...
元胞陣列索引 MATLAB的cell陣列
5 cell陣列 元胞陣列 cell 是matlab的一種特殊資料型別。可以將元胞陣列看做一種無所不包的通用矩陣,或者叫做廣義矩陣。組成元胞陣列的元素可以是任何一種資料型別的常數或者常量,每乙個元素也可以具有不同的尺寸和記憶體占用空間,每乙個元素的內容也可以完全不同。和一般的數值矩陣一樣,元胞陣列的...
如何使用matlab中的胞元陣列
胞元陣列 cell arry 的基本組分是胞元 cell 每個胞元本身在陣列中是平等的,只能以下標區分。胞元可以存放任何型別 任何大小的陣列,如任意維數值陣列 字串陣列 符號物件等,而且同乙個胞元陣列中各胞元中的內容可以不同。與數值陣列一樣,胞元陣列維數不受限制,可以一維 二維或更高維,不過一維胞元...