matlab中关于IF语句

来源:百度知道 编辑:UC知道 时间:2024/05/09 03:39:46
中这句中

>> student(1).gen='female';
student(2).gen='male';
student(3).gen='female';
sum=0;
if student(2).gen=='female';
sum=1;
end
出错,显示
??? Error using ==> eq
Array dimensions must match for binary array op.
因为student(2).gen='male'
if student(2).gen=='female';改为if student(2).gen=='male';
就对了,为什么IF语句中会出来判断的与要求的不一样时就出错呢,别的语言中不一样就跳过执行下一句了。这是怎么回事。
xiexie两位,如果没有其他更仔细的就二位了。我觉得二位都有理。

strcmp(student(2).gen,'female')==0

字符串比较你最好用上面的.

错不在if,而在==。因为字符串也是一种数组,比较时会对对应元素分别进行比较,female和male的长度不同,当比较到第5个字母时,其中一个根本没有,所以就出错了;如果两个字符串长度相同的话就不会出错。

网上找找