What's the problem with this simple anonymous function?

2 visualizaciones (últimos 30 días)
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?

Respuesta aceptada

Steven Lord
Steven Lord el 10 de Nov. de 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 comentarios
Muhammad Usman
Muhammad Usman el 7 de Dic. de 2021
Thanks, sometimes a simpler logic never clicks into the mind
Muhammad Usman
Muhammad Usman el 7 de Dic. de 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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre MATLAB Mobile Fundamentals en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by