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

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!

댓글을 달려면 로그인하십시오.

 채택된 답변

Adam
Adam 2014년 9월 27일
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

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!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Surfaces, Volumes, and Polygons에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

질문:

2014년 9월 27일

댓글:

2014년 9월 27일

Community Treasure Hunt

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

Start Hunting!

Translated by