Element-wise interval conformity check
显示 更早的评论
Hello I have a Matrix
A=[1.0,2.0,0.7;1.2,3.0,1.0;0.8,1.1,0];
and an Interval
lower = 0.75;
upper = 1.25;
Matrix R should give me either 1 if the corresponding element of A is within the interval, or else 0:
R=[1,0,0;1,0,1;1,1,0];
Is there any way to do this without a loop?
采纳的回答
更多回答(1 个)
Purushottama Rao
2015-5-4
0 个投票
Without looping, this can be done by accessing each element of a matrix and processing with an if condition. That makes lot of hand written code compared to looping.
1 个评论
This is misleading and very poor advice that shows a basic misunderstanding of how to use MATLAB. Simply reading the documentation for the relational operators makes it clear that they operate on whole arrays at once, for example le states " A <= B returns a logical array with elements set to logical 1 (true) where A is less than or equal to B..." note the word array in that sentence. The examples in the documentation also illustrate this:
A = [1 12 18 7 9 11 2 15];
A <= 12
ans =
1 1 0 1 1 1 1 0
This means that no if statements or "lot of hand written code compared to looping" is required. Please learn about code vectorization.
类别
在 帮助中心 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!