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 Kommentar

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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

KALYAN ACHARJYA
KALYAN ACHARJYA am 28 Apr. 2019
Bearbeitet: KALYAN ACHARJYA am 28 Apr. 2019

0 Stimmen

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

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by