wdtyang 发表于 2009-4-4 23:06

求助:小程序错在哪?

假设一个矩阵
a=

从第一个数开始,遇到一个正数,正数后面接着是负数的,就计数加1,如上面矩阵a中的 2 -3 和 4-8

求矩阵a中有多少这样的组合?

我初学者,自己编了一个不正确,求高手帮忙,谢谢!

a=;
ind=find(a>0);
count=0;
for i=1:length(ind)
if (ind(i)~=length(a))&&(a(ind(i+1))<0)
count=count+1;
end;
end;

结果显示为1,错在哪?

ChaChing 发表于 2009-4-5 09:13

回复 楼主 wdtyang 的帖子

if (ind(i)~=length(a))&&(a(ind(i+1))<0)这句logic有误, 应为
if (ind(i)~=length(a))&&(a(ind(i)+1)<0)

wdtyang 发表于 2009-4-5 09:20

回复 沙发 ChaChing 的帖子

:handshake
谢谢啊,问题解决了!
刚才请教了一下别人,上面的程序用一句就解决了
sum(diff(sign(a))<0)
页: [1]
查看完整版本: 求助:小程序错在哪?