Raising a scalar to each element in a matrix

2 views (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)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!