Decrease the least and increase the highest

13 次查看(过去 30 天)
I have an array
A = [1 -3 -6 10 2 3 7 -1 -9 -3]
B = [1 2 3 4 5 6 7 8 9 10]
1) I want to check the least negative and the highest positive in array A.
2) In the corresponding number in Matrix B, if it is the least negative then multiply the number in B by 10 and if it is the highest positive, then multiply the number in B by 100.
3) Then B = [1 2 3 400 5 6 7 8 90 10]
  2 个评论
Image Analyst
Image Analyst 2016-7-21
Are you sure that's what they want? It's kind of ambiguous. You could also assert that the least negative value is the -1, and the most negative value is -9, in which case the 8 would be multiplied by 10 instead of the 9.

请先登录,再进行评论。

采纳的回答

Star Strider
Star Strider 2016-7-21
A = [1 -3 -6 10 2 3 7 -1 -9 -3];
B = [1 2 3 4 5 6 7 8 9 10];
[~,idxlo] = min(A);
[~,idxhi] = max(A);
B(idxlo) = 10*B(idxlo);
B(idxhi) = 100*B(idxhi)
B =
1 2 3 400 5 6 7 8 90 10

更多回答(1 个)

Thorsten
Thorsten 2016-7-21
编辑:Thorsten 2016-7-21
B(A == max(A)) = B(A == max(A))*100;
B(A == min(A)) = B(A == min(A))*10;

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by