我正在寫一個MATLAB函數來讀出數據到一個n維數組(可變維度大小)。我需要能夠訪問矩陣中的特定點(例如,寫入或讀取它),但我不知道需要指定多少個索引。使用向量作爲矩陣的索引
目前我有一個current_point
矢量,我遍歷指定每個索引,並指定數組的大小的max_points
矢量。所以,如果例如,我想大小1000逐15×3,max_points = [1000 15 3]
的3維陣列,並且從[1, 1, 1]
current_point
迭代到[1000, 15, 3]
([1, 1, 1]
- >[1000, 1, 1]
- >[1, 2, 1]
- >[1000, 2, 1]
- > ...) 。我希望能夠做的是飼料current_point
作爲索引矩陣,像這樣:
output_matrix(current_point) = val
但很顯然,像output_matrix([1 2 3]) = val
將只設置outputmatrix(1:3) = 30
。我不能只是使用虛擬變量,因爲有時矩陣需要3個索引,其他時間4,其他時間2等,所以一個可變長度的向量真的是我需要的。有一種簡單的方法可以將矢量用作索引中的點嗎?
這是*本質* [緊湊MATLAB矩陣索引符號(的副本http://stackoverflow.com/questions這隻適用/ 792683/compact-matlab-matrix-indexing-notation),儘管也許這個問題比這種情況要簡單一些。 – gnovice 2011-05-05 21:59:41
我知道這一定是以前被問過的,但是無法用我的dupe插件找到它。我想我會讓答案保持不變,因爲問題標題比另一個更直接,可能更容易搜索。 – abcd 2011-05-05 22:11:30
我認爲它在某些時候一定被問過了,但從標題中我什麼都看不到。來自你們兩個的好答案。我認爲會有這樣簡單的事情。 – Paul 2011-05-05 23:37:12