matlab 中m文件的if运行结果不对,求帮助

function y=f(x)
A=load('dt.txt');
day=A(:,1);
hour=A(:,2);
if hour-9<0
day=day-1
hour=hour+15
elseif hour-9>=0
day=day
hour=hour-9
end
B=[day hour];
save('b.txt','B','-ASCII')
end加上了,还是不行。运行这个m文件时,只按else后面的条件输出结果,else之前的那个条件用不上

第1个回答  2014-07-22
你单步运行一下,hour-9是一个向量了,加上for循环吧
第2个回答  2014-07-22
hour是很多数 进行比较时候全部满足才是if里面程序的结果 否则就运行else
第3个回答  2014-07-21
少了个end吧,我记得一个if对应一个end,你试试
第4个回答  2014-07-21
少了个end吧,我记得一个if对应一个end,你试试
第5个回答  2014-07-21
结果怎么不对,你可以说得再具体一点么??追问

end加上了,还是不行。运行这个m文件时,只按else后面的条件输出结果,else之前的那个条件用不上

追答

目测是因为hour-9<0判断的时候,不是针对向量的每一个数进行判断,而是根据最后一个数进行判断,所以会出现这样的结果。你最好采用遍历的方式逐个进行判断

本回答被提问者采纳
相似回答