2010-10-11 64 views

回答

0

我建议您阅读有关matrix indexing的文档,特别是关于logical indexing的部分。我相信你正在寻找解决的办法是这样的:

vSub = v(:,v(2,:) > 0); %# Extract columns where the second row is > 0 
+0

这是一个30x2矩阵的解决方案,对于非负的'y',不是严格肯定的。 – aschepler 2010-10-11 20:18:54

+0

@aschepler:你是对的。现在更正。我想我太习惯于将坐标值存储在列而不是行中。 – gnovice 2010-10-11 20:22:19

0
vPos = v(:, v(2,:) > 0); 

创建您所描述的2乘n子矩阵。

0

您可以尝试使用此简单索引从两行中提取正值并合并两行以形成所需的所有正值。

V = randn(2,5);

V =

0.7873 0.3199 -0.3114 -1.0257 -0.2099 

-0.8759 -0.5583 -0.5700 -0.9087 -1.6989

%第一行

f_row = V(1,:) ;

f_indeX = find(f_row> 0);

f = f_row(f_indeX);

%第二行

s_row = V(2,:);

s_indeX = find(s_row> 0);

s = s_row(s_indeX);

%合并第一和第二行,以获得所有正值

posValues = [F s]的;

posValues =

0.7873 0.3199 0.6647 0.8810 1.8586 0.1034 0.1136 1.4790 0.7847 

以上值是在这两个第一和第二行正值。 希望这有助于吗?