compare two values and chosing the higher one

31 visualizzazioni (ultimi 30 giorni)
Prabha Kumaresan
Prabha Kumaresan il 23 Nov 2017
Modificato: Andrei Bobrov il 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 Commento
Prabha Kumaresan
Prabha Kumaresan il 23 Nov 2017
Modificato: Walter Roberson il 23 Nov 2017
0 0 0 -0.7120
-0.1461 1.6821 -0.4838 0
for this output i want to modify the code

Accedi per commentare.

Risposte (3)

KSSV
KSSV il 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 Commento
Prabha Kumaresan
Prabha Kumaresan il 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];

Accedi per commentare.


Walter Roberson
Walter Roberson il 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 Commento
Walter Roberson
Walter Roberson il 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!)

Accedi per commentare.


Andrei Bobrov
Andrei Bobrov il 23 Nov 2017
Modificato: Andrei Bobrov il 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);

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by