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 commentaire

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

Connectez-vous pour commenter.

 Réponse acceptée

KALYAN ACHARJYA
KALYAN ACHARJYA le 28 Avr 2019
Modifié(e) : KALYAN ACHARJYA le 28 Avr 2019

0 votes

%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 commentaires

Cedric
Cedric le 28 Avr 2019
Modifié(e) : Cedric le 28 Avr 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 le 28 Avr 2019
Modifié(e) : KALYAN ACHARJYA le 28 Avr 2019
Exactly Yes @Cedric sir, I supposed X and Y are given, therefore I replaced original Y with ones.
Thanks!
pawlo392
pawlo392 le 28 Avr 2019
Thank You for help. :)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by