How to display coordinate from for loop?

2 ビュー (過去 30 日間)
Alex
Alex 2022 年 12 月 8 日
コメント済み: Walter Roberson 2022 年 12 月 9 日
I am trying to find a set of coordinate that gives a result of 1.3 for the given equation using a for loop for a set of x and y values. How do I display the coordinates that gives such result?
qmin = 88;
limit = 1.3;
for i = 1:length(t2)
hrms = (x.*((qmin)^4 - (y).^4))/4;
if hrms == limit
end
end

回答 (1 件)

Walter Roberson
Walter Roberson 2022 年 12 月 8 日
if hrms == limit
disp([x, y])
break;
end
But what do you want to do if no such point is found?
  5 件のコメント
Bora Eryilmaz
Bora Eryilmaz 2022 年 12 月 8 日
@Walter Roberson Nope. Even in your example, you don't know what min(A) is doing. There is no guarentee that it will return an element of A exactly without any modification. And a casual MATLAB user would not, in general, know what operations would preserve the bit pattern of a value. Better be safe than sorry.
Walter Roberson
Walter Roberson 2022 年 12 月 9 日
Suppose that the true numeric minimum of a vector is Actual, and the value returned by min() is Returned .
Then is Returned < Actual ? If it is then Returned is not the minimum of the vector, but min() is documented as returning the mimimum of the vector.
Is Returned > Actual ? If it is then Returned is not the minimum of the vector, but min() is documented as returning the mimimum of the vector.
Is Returned one of the NaN patterns even though the vector has no NaN patterns at all? NO.
Is Returned one of the NaN Patterns in a case where the vector has some NaN patterns but not all entries are NaN patterns? NO, the default is to omitnan
Is Returned one of the NaN Patterns in the case where all of the entries are NaN ? Yes -- and as per usual in MATLAB, the returned NaN pattern is not guaranteed to be the same as any of the input NaN patterns. MATLAB reserves the right to normalize NaN patterns during any function call that operates on the NaN. So in the case where all of the inputs are NaN, then the output is not guaranteed to be exactly the same bit pattern as any of the inputs. But I specifically noted NaN as an exception in my discussion above. Even if the exact same NaN pattern were returned, NaN == NaN is always false anyhow, so NaN was always going to be an exception no matter whether the exact bit pattern is copied or not.
What possibilities do we have left? Just the one where Actual is "equal to" Returned. Are there (non-nan) circumstances under which two numeric values with the same class might compare equal and yet be different bit patterns? Yes there is for single() and double() precision: in particular, -0 and 0 are "equal" but have different representations. How does min() handle that: if the actual minimum is at a location that is a negative zero, then does it convert the negative zero to a non-negative zero? No!
1./min([1 -0])
ans = -Inf
So if the input is negative zero and zero is the minimum value then the bit-pattern of the negative zero is the one emitted.
(What about the case where there is a negative zero and a non-negative zero in the input and the minimum is zero? In that case, it returns the bit pattern of the first zero.)
So under what circumstances can the output bit pattern not be the same as the input bit pattern associated with the minimum?
  • one of the obscure NaN bit patterns
  • min() with two numeric inputs of different classes
1./min(-0, single(0))
ans = single -Inf
single(-0) was not either of the inputs but is the output.
... If you mix input classes for two-input min() and you == afterwards and expect == to check the exact bit patterns, then you are asking for problems anyhow, since the == operator will convert datatypes before comparison.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

製品


リリース

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by