2015-10-15 127 views
0

我有一个2D矩阵,如下所示:如何找到非零最小阵列中的2D矩阵在MATLAB

A = 

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.8193 0.6429 0.4731 
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.8172 0.6395 0.4696 
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.8099 0.6285 0.4582 
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.7938 0.6066 0.4364 
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.7588 0.5675 0.4006 
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.8527 0.6739 0.5039 0.3477 
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.8825 0.7371 0.5803 0.4264 0.2807 
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.7928 0.6327 0.4838 0.3406 0.2054 
1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 0.8846 0.7945 0.6560 0.5173 0.3816 0.2469 0.1131 
1.0000 1.0000 1.0000 1.0000 1.0000 0.8598 0.7438 0.6373 0.5194 0.3988 0.2785 0.1522   0 
1.0000 1.0000 1.0000 0.8710 0.7956 0.6954 0.5935 0.4916 0.3856 0.2799 0.1814 0.0834   0 
0.7915 0.7845 0.7581 0.6884 0.6159 0.5326 0.4432 0.3500 0.2514 0.1538 0.0838   0   0 
0.5972 0.5882 0.5596 0.5085 0.4471 0.3760 0.2967 0.2137 0.1163   0   0   0   0 
0.4208 0.4116 0.3836 0.3389 0.2881 0.2274 0.1540 0.0919   0   0   0   0   0 
0.2629 0.2536 0.2244 0.1755 0.1388 0.0915   0   0   0   0   0   0   0 
0.1235 0.1155 0.0850   0   0   0   0   0   0   0   0   0   0 
    0   0   0   0   0   0   0   0   0   0   0   0   0 

我想删除其零个阵列,然后找到每一列的最小值,并把矢量中的最小值。

我刚使用find(A ~= 0),但它不工作。

我该怎么做?

+0

两件事情:1)请张贴矩阵作为文本而不是图像。 2)你有尝试过什么吗? –

+0

为什么你需要删除零?在矩阵A(A> 0)上按列逐列运行将执行技巧 – BillBokeey

回答

2

NaN替换所有的零,然后独立地将min应用于每列。在矩阵/向量中将值设置为NaN允许min忽略这些值,因此您将有效地忽略零。假设你的矩阵是A,这样做:

Anan = A; 
Anan(A == 0) = NaN; 
out = min(Anan, [], 1); 
+1

没有更多'nanmin'! – Adriaan