我試圖找到一個代表三維數組中第三維最小值的二維數組。查找矩陣中的最小非零值
a = floor(rand(10,10,3).*100); % representative structure
b = min(a,[],3); % this finds the minimum but also includes 0
我試着使用:
min(a(a>0),3)
但這是不正確的?我想我可以對a的第三維進行排序,然後在1:depth-1內找到最小值 - 但這似乎並不是最有效的方法?
有什麼想法?
請注意,如果您排序,最小的是第二個(索引1,如果從0 MATLAB索引)元素,你沒有找到最低的'1:深度1'了。但是,是的,這仍然是低效率的,必須有更好的方法。 – IVlad
它應該是'min(a,[],3)',否則你把小'a'和3 – Jonas
謝謝你指出那個錯誤的Jonas,我現在糾正它。 – trican