" if "语句使用" or "运算符。

4,923次(过去30天)
莎拉
莎拉 2012年2月2日
回答: 拉赫曼Tabasum2021年4月30日
大家好,
我有一个非常简单的问题....我已经研究了一段时间,但还是想不出来。这就是我想说的
r = 1:长度(FreqSec) 1
如果FreqSec (1 r + 1) > FreqSec (r) * 1.01”或“FreqSec (1, r + 1) < FreqSec (r) * 0.99
LagStart = [FreqSec(1,r) r];
打破
结束
结束
FreqSec是一个有很多很多值的向量....一般在0.99和1.01的范围内,除了在一定的间隔内。我想要检测值从0.99到1.01范围开始变化的确切索引点。
提前感谢您的帮助:)
1评论
亚伦·埃尔德里奇
亚伦·埃尔德里奇 2016年4月28日
“||”在matlab中被算作一个或

登录评论。

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2012年2月3日
如果| (1,r+1) < (r)*0.99 . | (1,r+1) < (r)*0.99 . | (1,r+1) < (r)*0.99 . | (1,r+1) < (r)*0.99 . | (1,r+1) < (r)*0.99 . | (1,r+1
如果|| (1,r+1) < bbqsec (r)*0.99 . || (1,r+1) < bbqsec (r)*0.99
第一个比较普遍。第二个是短路的OR,如果它已经知道第一个操作后的最终结果,它就不会计算第二个表达式。该操作符只能用于产生标量输出的表达式之间。
1评论
哈利MacDowel
哈利MacDowel 2013年11月23日
很好地澄清了|和!

登录评论。

更多的答案(2)

杰夫
杰夫 2012年2月3日
你想要有效范围内的最后一个索引?
我不知道为什么要乘以1.01和0.99。也许你对问题的描述不正确,或者这就是你遇到困难的原因。我认为你想做的是
idx = find(FreqSec >= 0.99 & FreqSec <= 1.01, 1, 1);“最后一次”
LagStart = [FreqSec(1,idx) idx];
或者,因为它是对称的:
if (abs(ref (FreqSec-1) -1) = 1, ref (FreqSec-1) -1, 1,0), colorred;“最后一次”
如果你想要第一个超出范围的值的索引,请使用:
idx = find(abs(FreqSec-1) > 0.01, 1,0), colorred;“第一”
参数'first'是可选的,但有利于清晰。
- g -
1评论
杰夫
杰夫 2012年2月3日
哦,那些带有'last'的语句是不正确的。你最好先做第一个陈述再减去1。

登录评论。


拉赫曼Tabasum
拉赫曼Tabasum 2021年4月30日
我= 5
虽然我> = 1
暂停(1)
流(% d \ n ',我)
张我=
如果我= = 0
打破
结束
结束
这是我的代码开始按钮GUI倒计时计时器,所以任何人都知道如何停止倒计时计时器时,它是运行的

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!