What's the problem with this simple anonymous function?

2 vues (au cours des 30 derniers jours)
Muhammad Usman
Muhammad Usman le 10 Nov 2021
Commenté : Muhammad Usman le 7 Déc 2021
Here's an simple code:
clear all; clc; close all;
n = 1:3;
for i = 1:numel(n) %numel is used if someother time I'll use negative values for n
f = @(x) x.^n;
fplot(f);
hold on;
f1 = @(x) x.^(1/n);
fplot(f1);
hold on;
end
The function "f" is running OK but "f1" is generating graphics error. For one value of n like:
f1 = @(x) x.^(1/2);
It generates the plot, but not in the loop.
Please let me know what's wrong?

Réponse acceptée

Steven Lord
Steven Lord le 10 Nov 2021
You likely meant to use n(i) in your functions, not n. Another option would be to use 1./n instead of 1/n.
n = 1:3
n = 1×3
1 2 3
y = 1./n
y = 1×3
1.0000 0.5000 0.3333
z = 1/n(2)
z = 0.5000
w = 1/n
Error using /
Matrix dimensions must agree.
  2 commentaires
Muhammad Usman
Muhammad Usman le 7 Déc 2021
Thanks, sometimes a simpler logic never clicks into the mind
Muhammad Usman
Muhammad Usman le 7 Déc 2021
One thing more to ask how to adjust legend for array n
n = 1:10;
figure(1);
f = @(x) x.^n;
fplot(f);
hold on;
legend(sprintf('$x^{%d}$\n',n),'Interpreter','latex');
xlim([0 10])
The output I got:
How to correct it?
Thanks in advance

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB Mobile Fundamentals dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by