在 Matlab 中,您可以通過以下方式連接陣列:
a=[];
a=[a,1];
你如何用單元陣列做類似的事情?
a={};
a={a,'asd'};
上面的代碼繼續在單元格中嵌套單元格。我只想將元素附加到單元格陣列。我該如何做到這一點?
uj5u.com熱心網友回復:
如果a和b是元胞陣列,則以與連接其他陣列相同的方式連接它們:使用[]:
>> a={1,'f'}
a =
1×2 cell array
{[1]} {'f'}
>> b={'q',5}
b =
1×2 cell array
{'q'} {[5]}
>> [a,b]
ans =
1×4 cell array
{[1]} {'f'} {'q'} {[5]}
您還可以使用函式形式 ,cat您可以在其中選擇要連接的維度:
>> cat(3,a,b)
1×2×2 cell array
ans(:,:,1) =
{[1]} {'f'}
ans(:,:,2) =
{'q'} {[5]}
要附加單個元素,您可以這樣做a=[a,{1}],但這效率不高(請參閱此 Q&A)。相反,做a{end 1}=1or a(end 1)={1}。
請記住,單元陣列只是一個陣列,就像任何其他陣列一樣。您使用相同的工具來操作它們,包括索引,您使用(). 索引回傳的()陣列型別與您索引的陣列型別相同,因此即使您只索引單個元素,它也會回傳一個元胞陣列。MATLAB 中幾乎每個值都是一個陣列,包括61x1 雙精度陣列。
該{}語法用于創建元胞陣列并提取其內容:a{1}不是元胞陣列,它提取陣列第一個元素的內容。
{5, 8, 3}是一樣的[{5}, {8}, {3}]。5是一個雙精度陣列,{5}是一個包含雙精度陣列的元胞陣列。
a{5} = 0是一樣的a(5) = {0}。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/481586.html
