Getting error when asking from max and min for negative values.

조회 수: 10 (최근 30일)
Yasmin Samy
Yasmin Samy 2017년 12월 27일
댓글: Yasmin Samy 2017년 12월 27일
I have two vector of negative numbers (log values). The first is fine as it has a postive max value and a negative min. But i get an error for the second vector (which has its max and min as negative numbers) when i ask for max or min. What is another option to get these two values??
error: Subscript indices must either be real positive integers or logicals.
  댓글 수: 2
Rik
Rik 2017년 12월 27일
What code are you using? Are you using the min and max functions? The error sounds like you aren't.
Yasmin Samy
Yasmin Samy 2017년 12월 27일
편집: Walter Roberson 2017년 12월 27일
the vector is A, the code lines are:
max=max(A);
min=min(A);

댓글을 달려면 로그인하십시오.

채택된 답변

Image Analyst
Image Analyst 2017년 12월 27일
Sounds like you may be trying to index into the array using the min or max value instead of the index:
mn = min(data);
minValue = data(mn);
Don't do that. Use both values if you want to get the index. A better way:
[minValue, indexOfMin] = min(data);
[maxValue, indexOfMax] = max(data);
Or you may have used min for the variable
min = min(data); % Horrible idea
in which case when you came along and tried to do it again, it would have used your min array (a vector is data was a 2-D array) as indexes into your newly created min array. min() is no longer the min function if you replaced it with a variable of the same name. So if the min was now an array of column mins because you stored the mins in an array called min, then doing min(data) will throw that error if any elements of data have negative, zero, or floating points (fractional) values.

추가 답변 (1개)

Walter Roberson
Walter Roberson 2017년 12월 27일
Do not name a variable min or max. Also do not name a variable sum . Using any of these variable names is quite likely to run into problems when you later try to use the same name as if it were the MATLAB function.
  댓글 수: 2
Yasmin Samy
Yasmin Samy 2017년 12월 27일
Yes you are right. Luckily, its not the cause of my problem. As the vector im having an issue with i used omax and omin as the name of the values for the maximum and min. So it's like omax=max(oA);
Thanks for your comment though.
Yasmin Samy
Yasmin Samy 2017년 12월 27일
Thanks...it seems using it in the first place messed things

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by