compare two values and chosing the higher one

21 Ansichten (letzte 30 Tage)
Prabha Kumaresan
Prabha Kumaresan am 23 Nov. 2017
Bearbeitet: Andrei Bobrov am 23 Nov. 2017
user = 2;
subcarrier = 4;
randn(user,subcarrier)
If i run this i am getting
ans =
-0.1623 -0.5320 -0.8757 -0.7120
-0.1461 1.6821 -0.4838 -1.1742
from the values i want ans to be displayed as
-0.1623 0 -0.8757 -0.7120
0 1.6821 0 0.
how can i modify the code to get this output
  1 Kommentar
Prabha Kumaresan
Prabha Kumaresan am 23 Nov. 2017
Bearbeitet: Walter Roberson am 23 Nov. 2017
0 0 0 -0.7120
-0.1461 1.6821 -0.4838 0
for this output i want to modify the code

Melden Sie sich an, um zu kommentieren.

Antworten (3)

KSSV
KSSV am 23 Nov. 2017
A = [-0.1623 -0.5320 -0.8757 -0.7120
-0.1461 1.6821 -0.4838 -1.1742];
B = [-0.1623 0 -0.8757 -0.7120
0 1.6821 0 0.] ;
C = zeros(size(A)) ;
[val,idx] = max(abs(A)) ;
% [I_row, I_col] = ind2sub(size(A),idx) ;
% C(I_row,I_col) = val ;
for i = 1:size(A,2)
[val,idx] = max(abs(A(:,i))) ;
C(idx,i) = val ;
end
  1 Kommentar
Prabha Kumaresan
Prabha Kumaresan am 23 Nov. 2017
Could you tell me how to modify the code if A has 10 rows and 64 columns of values instead of [-0.1623 -0.5320 -0.8757 -0.7120 -0.1461 1.6821 -0.4838 -1.1742];

Melden Sie sich an, um zu kommentieren.


Walter Roberson
Walter Roberson am 23 Nov. 2017
user = 2;
subcarrier = 4;
temp = randn(user,subcarrier);
temp( bsxfun(@lt, temp, max(temp)) ) = 0
Note: your requirement is not defined in the case where there are duplicate maximum values.
  1 Kommentar
Walter Roberson
Walter Roberson am 23 Nov. 2017
My code is already set up to give only one non-zero entry per column. (All of the entries in a column could be 0 if it happened that randn produced an exact 0!)

Melden Sie sich an, um zu kommentieren.


Andrei Bobrov
Andrei Bobrov am 23 Nov. 2017
Bearbeitet: Andrei Bobrov am 23 Nov. 2017
a = [ -0.1623 -0.5320 -0.8757 -0.7120
-0.1461 1.6821 -0.4838 -1.1742];
out = (a == max(a)).*a;
or
out = a.*bsxfun(@eq,max(a),a);

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by