Why does this keep giving me the error "Not enough input arguments"

I'm a beginner at MatLab so sorry for asking this very 'noobish' question. I'm basically trying to plot the following function, f(x) = cos(x) * sin(x)
In my "main" matlab file, I have the following code:
x = 0:pi/1000:2*pi;
third = ThirdFunction(x);
plot(x,third,'y');
axis([0 2*pi -3 3])
xlabel('X - Axis')
ylabel('Y - Axis')
title('Sinusodial Graph')
This is the code for my ThirdFunction
function [y] = ThirdFunction(x)
%FIRSTFUNCTION Summary of this function goes here
% Used to graph the first function
y = tan(x) * sin(x);
end
Everytime I try to compile, it gives me the following error: 'Error using ThirdFunction (line 4) Not enough input arguments."
Thanks in advance :)

2 comentarios

I ran it in a nested function and it ran without error once I used element-wise multiplication here:
y = tan(x) .* sin(x);
What specifically is ‘line 4’?
Do you really want to plot in yellow by the way?! You'll hardly see it on a white background!

Iniciar sesión para comentar.

 Respuesta aceptada

You seem to be using tan(x) rather than cos(x).
Also you need to use .* rather than * i.e.
y = cos(x) .* sin(x);
I wouldn't think either of those would result in a not enough input arguments error though.

2 comentarios

Thanks so much, it was because I didn't use .* The operator simply means multiplication right?
.* means simply point-wise multiplication of two matrices/vectors of equal size. * is matrix multiplication so subject to the rules of that which I always manage to forget what they are!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Surfaces, Volumes, and Polygons en Centro de ayuda y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Preguntada:

el 27 de Sept. de 2014

Comentada:

el 27 de Sept. de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by