matrix variable problem in matlab

4 Ansichten (letzte 30 Tage)
javad hemati
javad hemati am 10 Dez. 2020
Kommentiert: javad hemati am 10 Dez. 2020
I have been assigned to run these codes and report what are they for. I'm good up to the 8th line. After that i'm lost and don't know what the last 3 lines do. I'll appreciate it if someone help me and explain what they do.
Thanks
a=rand(5);
b=a;
m=size(a,2);
x=1:m;
y=1:m;
xx=x'*ones(1,m);
yy=(y'*ones(1,m))';
c=xx==yy;
b(c)=0
c=xx.^2>yy;
a(c)=0

Akzeptierte Antwort

Henry Tran
Henry Tran am 10 Dez. 2020
Bearbeitet: Henry Tran am 10 Dez. 2020
Hi,
b(c)=0 %sets all values of b to 0, which are along the 1 of c
c=xx.^2>yy; %checks if the value of "xx.^2" is greater than the values in yy. If it is true then it returns as 1.
a(c)=0 --> %same principle as b(c)=0
I hope it answers your question.
  4 Kommentare
the cyclist
the cyclist am 10 Dez. 2020
I found the phrasing confusing, too. Here is an example. Suppose b and c are
b = [2 3 5 7 11]
c = [1 0 1 1 0];
Then b(c) will be
[2 5 7]
In other words, b(c) picks out the elements of b where c is equal to 1.
javad hemati
javad hemati am 10 Dez. 2020
Thank you. got it now

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

the cyclist
the cyclist am 10 Dez. 2020
This documentation about indexing with logical values might help you understand.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte


Version

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by