首页 > 解决方案 > 如何在matlab向量上制作多个if?

问题描述

如何ifMATLAB向量上创建多个?

score=[45,78,90] 当我试图为每个学生打印成绩时,我有一个向量。
预期结果是:

fail
pass
pass

但是我的代码不起作用result=score>=60:'pass':'fail'

标签: matlab

解决方案


也许你可以试试下面的代码

v = {'pass', 'fail'};
result = v((score >=60)+1);

这使

result =
{
  [1,1] = pass
  [1,2] = fail
  [1,3] = fail
}

更新 1

如果你有更多的条件,也许你可以试试下面的代码

score=[45,59,72,78,90];

v = {'A','B','F'};
[i,~,~]= find([score >=80; score>=60 & score<80; score <60]);
result = v(i);

这样

result =
{
  [1,1] = F
  [1,2] = F
  [1,3] = B
  [1,4] = B
  [1,5] = A
}

更新 2

对于表格格式的输出,您可以尝试

fprintf('%.2f\t',score)
fprintf('\n'); 
fprintf('%s \t',result{:});
fprintf('\n');

这使

45.00   59.00   72.00   78.00   90.00
F       F       B       B       A

推荐阅读