matlab - 如何在matlab向量上制作多个if?
问题描述
如何if
在MATLAB向量上创建多个?
score=[45,78,90]
当我试图为每个学生打印成绩时,我有一个向量。
预期结果是:
fail
pass
pass
但是我的代码不起作用result=score>=60:'pass':'fail'
解决方案
也许你可以试试下面的代码
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
推荐阅读
- chromecast - videojs-chromecast 不播放一些加密的 hls 视频?
- python - 使用模块 pygame 在 python 中制作 Checkers 但遇到一些逻辑错误我不希望代码更改只是修复了这个问题
- android-studio - Flutter:Flutter Plugin、Flutter Package 和 Flutter Module 有什么区别?
- python - Django - 如何在自定义接收器中获取请求的 IP?
- sql - 如何根据使用 SQL Server 选择的不同(列)获取不同的行
- laravel - 如何修复此请求已被阻止;内容必须通过 HTTPS 提供
- python - 在openCV中使用cv2.TrackerMOSSE_create()等方法失败[Python]
- c++ - 使用精美的指针实现自定义分配器
- javascript - Threebox CastShadow on 3D 模型
- matlab - 在每次迭代结束时计算均方误差并在 matlab 中绘制相同的图