How to correct the code?

Hello!
I wrote this code:
X=rand(5,3);
Y=zeros(5,3);
for k=1:5
for j=1:3
if X(k,j)<0.2
Y(k,j)=-1;
else
Y(k,j)=1;
end
end
end
I have to write the same code but without using any loop. How to do this?

1 Commento

Cedric
Cedric il 28 Apr 2019
Google "MATLAB logical indexing" and understand it, and you'll have the tools for solving your problem.

Accedi per commentare.

 Risposta accettata

KALYAN ACHARJYA
KALYAN ACHARJYA il 28 Apr 2019
Modificato: KALYAN ACHARJYA il 28 Apr 2019
%Though I am giving the answer here, but please must follow the Google "MATLAB logical indexing" as stated by @Cedric
There are multiple ways, you can do this. One way-
X=rand(5,3);
idx=X<0.2;
Y=ones(5,3);
Y(idx)=-1

3 Commenti

Cedric
Cedric il 28 Apr 2019
Modificato: Cedric il 28 Apr 2019
You can eliminate a few things:
X = rand(5,3);
idx = X < 0.2;
Y = ones(5,3);
Y(idx) = -1
also, Pawel, display idx and evaluate class(idx).
KALYAN ACHARJYA
KALYAN ACHARJYA il 28 Apr 2019
Modificato: KALYAN ACHARJYA il 28 Apr 2019
Exactly Yes @Cedric sir, I supposed X and Y are given, therefore I replaced original Y with ones.
Thanks!
pawlo392
pawlo392 il 28 Apr 2019
Thank You for help. :)

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by