Given 2 vectors X,Y both of length N, How do I act on every single term in X with every single term in Y into a N by N matrix?
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Omer Sholev
am 30 Mai 2016
Beantwortet: Torsten
am 30 Mai 2016
Just to make myself clear, assuming X = [1 2 3], Y = [1 2 3] and that I want to act with 'exp'
I want to create a matrix Z = [exp(1+1) exp(1+2) exp(1+3) ; exp(2+10 exp(2+2) exp(2+3) ; exp(3+1) exp(3+2) exp(3+3)]
I know I can run a simple for loop, but How do I make it simple using matlab matrix/vectors notation? Thanks
0 Kommentare
Akzeptierte Antwort
Stephen23
am 30 Mai 2016
Bearbeitet: Stephen23
am 30 Mai 2016
>> X = [1,2,3]; Y = [1,2,3];
>> exp(bsxfun(@plus,X.',Y))
ans =
7.3891 20.0855 54.5982
20.0855 54.5982 148.4132
54.5982 148.4132 403.4288
Or
>> [Xm,Ym] = ndgrid(X,Y);
>> exp(Xm+Ym)
ans =
7.3891 20.0855 54.5982
20.0855 54.5982 148.4132
54.5982 148.4132 403.4288
0 Kommentare
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Linear Algebra finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!