使用括號()
和大括號{}
訪問單元格數組中元素之間的區別?使用大括號和括號訪問單元格元素之間的差異
例如,我試圖使用cell{4} = []
和cell(4) = []
。在第一種情況下,它的4個元件設置爲[]
,但是在第二種情況下,消滅了電池元件,即,通過1
使用括號()
和大括號{}
訪問單元格數組中元素之間的區別?使用大括號和括號訪問單元格元素之間的差異
例如,我試圖使用cell{4} = []
和cell(4) = []
。在第一種情況下,它的4個元件設置爲[]
,但是在第二種情況下,消滅了電池元件,即,通過1
將細胞陣列想象成一個規則的同質陣列,其元素全部爲cell
s。圓括號(()
)僅訪問cell
包裝器對象,而使用捲曲護腕訪問元素({}
)則給出單元格中包含的實際對象。
例如,
A={ [5,6], 0 , 0 ,0 };
將看起來像這樣:
使得等於[]
用括號的元素的語法實際上是刪除該元素的請求,所以,當你問到做foo(i) = []
您刪除我個細胞。它不是一個賦值操作,而是一個RemoveElement
操作,它使用與賦值相似的語法。
但是,當你做foo{i} = []
你正在分配給第i個單元一個新值(這是一個空數組),從而清除該單元格的內容。
您可以將單元格視爲列表,其中存儲指向其他某些內容的指針。用()你得到指針,{}你得到指針指向的東西。 – gstar2002 2012-11-04 00:14:06
查看它的另一種方式是,分配給'[]'將刪除您分配的任何東西。因此,'foo(i)= []'確實移除了第i個單元,而'foo {i} = []'移除了第i個單元的內容。 (沒有留下任何東西('[]')) – 2013-09-30 08:40:14
查看單元陣列的這個Octave文檔(與MATLAB兼容;))https://www.gnu.org/software/octave/doc/v4.0.1/Indexing-細胞Arrays.html#索引 - 細胞陣列] – 2016-06-22 13:40:35
降低電池元件計數參見this link幫助。正如你所看到的,用括號訪問(),給你一個細胞(即子小區)的一個子集,而花括號{}爲您提供您嘗試訪問該單元格的內容。
[for循環中的MATLAB和單元格數組處理]的可能重複(http://stackoverflow.com/questions/4635052/matlab-and-cell-array-handling-in-for-loop) – Jonas 2012-01-29 17:45:30
數學鏈接[訪問單元格陣列](http://www.mathworks.com/help/techdoc/matlab_prog/br04bw6-98.html)以一種非常清晰的方式解釋,以便清除您的概念,然後您就可以使用陣列。 – SKM 2012-01-29 17:32:34