首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用if语句填充矩阵

使用if语句填充矩阵
EN

Stack Overflow用户
提问于 2019-11-06 18:08:05
回答 1查看 59关注 0票数 1

我有一个.csv文件,它包含两列,每列都有一个大小为68x1的矩阵。为了读取文件,我使用以下代码:

代码语言:javascript
复制
filename1= 'myfile.csv';
[d1,tex]= xlsread(filename1);
b=d1(:,1);

我想使用if获取一些值。我写过:

代码语言:javascript
复制
if b<=4.5&&b<60
    X=2*b+5
elseif b>=60
    X=3*b-6
end

然而,它不起作用。我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2019-11-06 18:21:45

在您的示例中,b是一个向量。语句b <= 4.5输出一个逻辑向量,它不能与短路双与号&&和另一个逻辑向量一起使用。

我还假设你有一个拼写错误,因为b<60总是正确的,如果是b<=4.5,我想你是指b>=4.5

你有两个选择:

  1. 把它放在一个循环中 对于 ii = 1:numel(b) 如果 b(ii) >= 4.5 && b(ii) < 60 X(ii) = 2*b(ii) + 5; 否则 b >= 60 X(ii) = 3*b(ii) - 6; 结束结束
  2. 更多 MATLAB 风格的方法是利用矢量化,注意单个 &符号:

X = NaN(大小(b)); X( b >= 4.5 & b < 60 ) = 2*b + 5; X( b >= 60 ) = 3*b - 6;

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58727619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档