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 个评论

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

请先登录,再进行评论。

 采纳的回答

KALYAN ACHARJYA
KALYAN ACHARJYA 2019-4-28
编辑:KALYAN ACHARJYA 2019-4-28
%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 个评论

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

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Language Support 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by