Raising a scalar to each element in a matrix

1 view (last 30 days)
J
J on 17 May 2022
Edited: Torsten on 17 May 2022
I have tried to raise e to the power of each element of a matrix for a contour plot of e^(1/X)/Y and got the error message for non-finite ZData. I was wondering whether the operation has done a form of matrix multiplication and added multiple elements results instead of outputting e^(ij) for element ij.
Thanks
x = linspace(0,50);
y = linspace(0,50);
[X,Y] = meshgrid(x,y);
Z = expm(X.^(-1))*(Y.^(-1));
contour(X,Y,Z);
Warning: Contour not rendered for non-finite ZData

Answers (1)

Torsten
Torsten on 17 May 2022
Edited: Torsten on 17 May 2022
expm is incorrect, use exp.
And you shouldn't divide by 0 - not for X and not for Y.
x = linspace(1,50);
y = linspace(1,50);
[X,Y] = meshgrid(x,y);
Z = exp(1./(X.*Y));
contour(X,Y,Z)

Community Treasure Hunt

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

Start Hunting!

Translated by