我正在嘗試從 80-column, 1-row cell array 中洗掉多個連續和非連續的列mycells。我的問題是:Matlab 中列向量的正確索引是什么?
我試圖做的是:mycells(1,[4:6,8,9]) = []試圖洗掉第 4 到 6 列、第 8 列和第 9 列。但我得到了錯誤:A null assignment can have only one non-colon index.
uj5u.com熱心網友回復:
第一個索引使用冒號。這樣只有第二個索引是“非冒號”。例如,
mycells(:,[4:6,8,9]) = []
MATLAB 本來可以很聰明地認識到,當只有一行時, 1 和 : 等于相同的東西,你仍然會得到一個矩形陣列結果,但事實并非如此。
uj5u.com熱心網友回復:
在獲得上述非常非常有用且更簡單的答案之前,我最終做了一些更復雜的事情。因為它在我的情況下有效,所以我會在這里為將來的任何人發布它:
- 所以,我有一個單元格陣列向量,我想洗掉其中的特定單元格。我創建了另一個要洗掉的單元格陣列:
remcols = mycells(1,[4:6,8,9])
- 然后我使用波紋管函式僅覆寫和
mycells之間不同的那些單元格(這些實際上是我想要保留的單元格):remcolsmycellsmycells
mycells = setdiff(mycells,remcols)
這一點都不整潔,但希望能滿足世界某個地方的某個人的目的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/517735.html
標籤:数组matlab单元阵列
上一篇:dotnet 用 SourceGenerator 源代碼生成技術實作中文編程語言
下一篇:fsolve與多個線性方程
