Matlab不到比较
1视图(30天)
显示旧的评论
Matlab文档是迷惑我。
我想测试每个单元格在一个特定的行数组(cA)。如果细胞有一个值小于一个常数(NC),然后细胞值更改为常数。这就是我有:
如果cA (i + 1,:) <数控;
cA(我+ 1)=数控;
结束;
这是正确的吗?我很困惑,因为文档表示," < "语句的结果只是一个逻辑向量(在本例中)的1和0取决于是否真或假的比较。
答案(2)
Chunru
2021年6月20日
正确的方法应该是:
cA(我+ 1)= max (cA(我+ 1,),NC);
或
:idx = cA (i + 1) <数控;
idx cA (i + 1) =数控;
Atsushi上野
2021年6月20日
>这是正确的吗?
——是的,这是正确的语法。不,它不像你期望。
cA =兰迪(10、10 [3]);i = 1;数控= 5;%的临时值
:%如果cA (i + 1) <数控;% 1:没有分号,2:任何需要(),3:如果声明不需要
cA (i + 1, cA (i + 1,:) < =数控NC)%所有cA的行i + 1设置为数控
%结束;% 1:没有分号,实际上3:if语句不需要
现在你正在第三索引的方法。请查看它。
在MATLAB®>,有三个主要方法访问数组元素数组中基于其位置(索引)。这些方法由位置索引,线性索引,索引和逻辑。
- 索引的元素的位置
- 索引与单个索引
- 逻辑值的索引
>表达式,包括关系运算符数组等
> 0
,是真的只有当每一个元素的结果是零。
if语句不需要就这个问题而言,但如果您使用if语句,你必须知道,上面要求的if语句。