這裏是尺寸6x3x8x5
如何使用大小()函數來檢索特定尺寸在Matlab
的例子矩陣A
現在,如果我使用size(A)
,我得到的所有尺寸爲行向量
ans = [6 3 8 5]
如果我想獲得特定尺寸(單數),我可以使用類似size(A,1)
或size(A,3)
等。
如果我想要指定一組尺寸,例如尺寸爲種3和尺寸或第二到第n尺寸
什麼我想要做的是一樣的東西size(A,3:4)
或size(A,2:n)
或size(A,[1 3 4])
但從Doc,看來,輸入尺寸大小隻能是一個標量。當我嘗試這樣做,我得到這個錯誤:
>> size(A,[2 3])
Error using size
Dimension argument must be a positive integer scalar within indexing range.
我期待的輸出爲
ans = [3 8]
FYI:
我試着將此作爲輸入參數傳遞給另一個函數,如下所示:
out = someFunction(arg1,arg2,size(A,[2 3]))
什麼我目前做的是
[~,size2,size3,~] = size(A)
out = someFunction(arg1,arg2,[size2, size3])
我只是想不直接在第一線使用。顯然,當我們只有兩個維度時,我們直接通過做size(A)
來使用它。爲什麼不在這種情況下?任何替代品,使這是一個單線?
簡答:是的,這是它的工作原理。我自己看不到兩條線有任何問題。如果你喜歡,你可以創建你自己修改的'size'函數,它具有你描述的特性。 – horchler
可能的重複[如何索引一個函數返回的MATLAB數組而不先分配給本地變量?](http://stackoverflow.com/questions/3627107/how-can-i-index-a-matlab -array-by-a-function-without-first-assigning-it) – thewaywewalk
@thewaywewalk,雖然這些解決方案解決了我的問題,但問題卻有點不同嗎? –