greater than less than

6 visualizzazioni (ultimi 30 giorni)
Ayesha Punjabi
Ayesha Punjabi il 15 Feb 2019
Risposto: Walter Roberson il 18 Feb 2019
  1. close all;
  2. tag_arr = randi(0:1,1,8);
  3. N = 16;
  4. hadamardmat = hadamard(N);
  5. codeTx1 = hadamardmat(:,1);
  6. codeTx2 = hadamardmat(:,2);
  7. codeTx3 = hadamardmat(:,3);
  8. codeTx4 = hadamardmat(:,4);
  9. codeTx5 = hadamardmat(:,5);
  10. codeTx6 = hadamardmat(:,6);
  11. codeTx7 = hadamardmat(:,7);
  12. codeTx8 = hadamardmat(:,8);
  13. code_Tx9 = hadamardmat(:,9);
  14. code_Tx10 = hadamardmat(:,10);
  15. code_Tx11 = hadamardmat(:,11);
  16. code_Tx12 = hadamardmat(:,12);
  17. code_Tx13 = hadamardmat(:,13);
  18. code_Tx14 = hadamardmat(:,14);
  19. code_Tx15 = hadamardmat(:,15);
  20. code_Tx16 = hadamardmat(:,16);
  21. scm = [codeTx1 codeTx2 codeTx3 codeTx4 codeTx5 codeTx6 codeTx7 codeTx8 code_Tx9 code_Tx10 code_Tx11 code_Tx12 code_Tx13 code_Tx14 code_Tx15 code_Tx16];
  22. sc_t = scm;
  23. sc_t(sc_t == -1) = 0;
  24. sc_o=sc_t;
  25. no_oftags = 5;
  26. out_array = zeros(no_oftags,16);
  27. for n = 1:no_oftags
  28. out_array(n,:) = xor(tag_arr(1,n),sc_t(n,:));
  29. end
  30. tau = zeros(1,no_oftags);
  31. sigma = 1;
  32. for n = 1:no_oftags
  33. tau(1,n) = sigma*sqrt(-2*log(1-rand(1)));
  34. end
  35. volts_forall = zeros(no_oftags,16);
  36. for n = 1:no_oftags
  37. volts_forall(n,:) = ((-5 + 10*(out_array(n,:)*tau(1,n))));
  38. end
  39. volts_add = zeros(1,16);
  40. for n = 1:no_oftags
  41. volts_add(1,:) = volts_add + (volts_forall(n,:));
  42. end
  43. voltsadd_val = volts_add;
  44. voltsadd_val(voltsadd_val>=0) = 1;
  45. voltsadd_val(voltsadd_val<0) = 0;
I am trying a code where I have to simple make all the positive values to 1 and negative values to 0 in voltsadd_val matrix but whenever i run the program the syntax doesnt work prroperly. I dont know whats wrong ..
eg
volts_add =
Columns 1 through 11
10.2478 11.0875 8.3853 -11.0500 14.2229 15.0626 12.3604 -7.0749 10.2478 11.0875 8.3853
Columns 12 through 16
-11.0500 14.2229 15.0626 12.3604 -7.0749
voltsadd_val =
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Risposte (2)

Kevin Phung
Kevin Phung il 15 Feb 2019
here's an example:
voltsadd_val = [1 5 3; -2 -5 5; 1 -5 3];
voltsadd_val(voltsadd_val>0) = 1; % if pos, 1
voltsadd_val(voltsadd_val<0) = 0; % if neg, 0
  2 Commenti
madhan ravi
madhan ravi il 16 Feb 2019
Suspect the OP did the same thing not sure why the OP says it doesn’t work though. Maybe more expanation is needed then.
Ayesha Punjabi
Ayesha Punjabi il 18 Feb 2019
matlab.JPG
I tried running the code with the syntax mentioned above but its just not showing the required results like in this case the last bit is negative but its showing as the output.
I tried with many ways but I am not sure y its showing such result

Accedi per commentare.


Walter Roberson
Walter Roberson il 18 Feb 2019
voltsadd_val = volts_add >= 0;
No logical indexing required.

Categorie

Scopri di più su Programming in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by