Find minimum and maximum from same matrix

1 ビュー (過去 30 日間)
Ajit Bashyal 2021 年 7 月 14 日
コメント済み: Ajit Bashyal 2021 年 7 月 16 日
I have a matrix of 1181*101 that is a Power of an electric vehicle. It has positive, negative and zeros. Now I need to choose minimum of positive from total matrix and maximum of negative from the same total matrix. How can I do it?
Example
i=1181, j=101
% Power =[1181*101] containing both positive, negative and zeros.
% Now,
if Power(i, j) >= 0
[P, index] = min(Power, [], 2);
else
%(i.e. Power(i,j)<0)
[P, index] = max(Power, [], 2);
But every time, either it is taking only minimum or only maximum at a time. I tried changing negative terms to zero for minimum and positive terms to zero for maximum, but it still did not work. Please help me.
I can email to you if you require more details like code and variables.
3 件のコメント表示非表示 2 件の古いコメント
Ajit Bashyal 2021 年 7 月 16 日
This is the attached file. One more question to Jan, can't i write it in the same variable name like minPositive and maxNegative making a same name as minmax or something like that? And yes I need to neglect the zero because it doesnot have any use.

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

採用された回答

Jan 2021 年 7 月 14 日
I guess, that zeros values should be ignored. Then:
tmpPower = Power;
tmpPower(tmpPower <= 0) = Inf;
[minPositive, index1] = min(tmpPower, [], 2);
tmpPower = Power;
tmpPower(tmpPower > 0) = -Inf;
[maxNegative, index2] = max(tmpPower, [], 2);

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

その他の回答 (1 件)

David Hill 2021 年 7 月 14 日
m=yourMatrix;
m(m<=0)=inf;
Min=min(m,[],'all');
m=yourMatrix;
m(m>=0)=0;
Max=-max(abs(m),[],'all');

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

Community Treasure Hunt

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

Start Hunting!

Translated by