Reallocate values in matrix to even the values

1 view (last 30 days)
I have this original traffic matrix
Y = [0.00 10.0 10.0 10.0;
10.0 0.00 10.0 10.0;
10.0 10.0 0.00 10.0;
10.0 10.0 10.0 0.00;]
And when one of them becomes 0, for example,
Y = [0.00 0.00 10.0 10.0;
0.00 0.00 10.0 10.0;
10.0 10.0 0.00 10.0;
10.0 10.0 10.0 0.00;]
I want to guarantee that the 0.00 is always 5.00
Y = [0.00 5.00 10.0 10.0;
5.00 0.00 10.0 10.0;
10.0 10.0 0.00 10.0;
10.0 10.0 10.0 0.00;]
but because of that some of the values decreases
Y = [0.00 5.00 5.00 10.0;
5.00 0.00 10.0 5.00;
5.00 10.0 0.00 10.0;
10.0 5.00 10.0 0.00;]
I was wondering if there is code to do this efficiently for this part? The second part will be, can I even the values further? For example below
Y = [0.00 5.00 7.50 7.50;
5.00 0.00 10.0 5.00;
7.50 10.0 0.00 7.50;
7.50 5.00 7.50 0.00;]

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 24 Jul 2019
n = size(Y);
lo = ~eye(n);
Y(lo) = max(Y(lo),5);
  2 Comments
JL
JL on 24 Jul 2019
Thanks Andrei
The answer gave me as
Y = [0.00 5.00 10.000 10.0;
5.00 0.00 10.0 10.0;
10.00 10.0 0.00 10.0;
10.0 10.0 10.0 0.00;]
instead of this below, when we guarantee it from 0 to 5.0, the values in the matrix also decreases
Y = [0.00 5.00 5.00 10.0;
5.00 0.00 10.0 5.00;
5.00 10.0 0.00 10.0;
10.0 5.00 10.0 0.00;]
JL
JL on 8 Aug 2019
Hi Andrei, I have another intetesting problem, was wondering if you are interested to take a look - here is the link to the question https://uk.mathworks.com/matlabcentral/answers/475460-sharing-values-of-elements-in-a-matrix

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!