Error when inputting function.

Hi, I can't figure out why I am getting the error. Here is the function.
function y=nest(d,c,x,b)
|
Error: Function definitions are not permitted in this context.
And this is the code I am trying to perform in matlab.
%Program 0.1 Nested multiplication %Evaluates polynomial from nested form using Horner’s Method
%Input: degree d of polynomial,
% array of d+1 coefficients c (constant term first),
% % x-coordinate x at which to evaluate, and array of d base points b, if needed
%Output: value y of polynomial at x
function y=nest(d,c,x,b)
if nargin<4,
b=zeros(d,1);
end
y=c(d+1);
for i=d:-1:1
y = y.*(x-b(i))+c(i);
end
RunningthisM atlab fun
Page(s): 3, Numerical Analysis, 2/e by Timothy Sauer, Pearson Education NOOK Study ( , truxton@udel.edu). This material is protected by copyright.

 採用された回答

Jos (10584)
Jos (10584) 2013 年 2 月 11 日

0 投票

I assume you did put that code in the editor and saved it as an m-file which you called from the command line (or from a script) and then got the error?
Is the second line ("Horner's method") on a separate line without a comment symbol ("%") in front of it? If so, that is causing the error.

3 件のコメント

Truxton
Truxton 2013 年 2 月 11 日
Hi Jos, What is "the editor"...And I have not been able to find a "save as" option, only "save as workspace". I did have the % symbol infront of the description of the code. When i copy and pasted the code it didn't come out so well in the initial post. So, if I can figure out exactly what the "editor" is, then figure out how to "save as .m"...then im good to go. I have the R2012a student version.
Jos (10584)
Jos (10584) 2013 年 2 月 11 日
The editor is the program that you can use in matlab to edit m-files. At the command prompt, type:
>> edit
Truxton
Truxton 2013 年 2 月 11 日
Cool! So I just put the function into the editor, then call it in the command window. awesome. Also, from the editor window I found the save as from the file menu. You helped me out soooo much! Thanks. Beleive it or not, im not a total noob with programming...ive taken a class or two, just its been a while.

サインインしてコメントする。

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 2 月 10 日
編集済み: Azzi Abdelmalek 2013 年 2 月 10 日

0 投票

Because you did not call your function, you run it as a m-file. Try this
d=5;
c=1:10;
x=100:200;
out=nest(d,c,x)

11 件のコメント

Truxton
Truxton 2013 年 2 月 10 日
Do you mean I should define the variables in matlab before defining the function?
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 2 月 10 日
編集済み: Azzi Abdelmalek 2013 年 2 月 10 日
I mean, you can't run a function file as a script file. Save your code
function y=nest(d,c,x,b)
if nargin<4,
b=zeros(d,1);
end
y=c(d+1);
for i=d:-1:1
y = y.*(x-b(i))+c(i);
end
as nest.m
Then call your function in Matlab command or from a script file (m-file) like I posted it in my answer
Truxton
Truxton 2013 年 2 月 10 日
o.k. I tried to save the code by clicking file, "save workspace as". then I typed nest.m and the same error happened. Am I suppose to save it differently?
Walter Roberson
Walter Roberson 2013 年 2 月 10 日
Do not save the workspace, save the code, from the editor.
Also please check all the lines before the "function" line. The "function" line must be the first non-blank non-comment line. If that word "needed" appears on a line of it own, you would have difficulty.
Truxton
Truxton 2013 年 2 月 10 日
o.k. cool. How do I "save the code, from the editor"?
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 2 月 10 日
Don't type "save workspace as", just click save your file as nest.m. Then don not type nest.m but:
d=5;
c=1:10;
x=100:200;
out=nest(d,c,x)
Truxton, I think you should read the basics of Matlab.
Truxton
Truxton 2013 年 2 月 10 日
o.k. I will do that for sure. Where do you see "save file"? can't find it. Thanks
Truxton
Truxton 2013 年 2 月 10 日
I am looking into the help files for this, and its not helping. It says, to " on the editor tab, in the file selection, click save". But what is "the editor tab"? Not so clear.
Image Analyst
Image Analyst 2013 年 2 月 11 日
You may have an old version - before R2012b with the tabbed ribbon interface. Look for "Save as..." under the File pulldown menu.
Truxton
Truxton 2013 年 2 月 11 日
Yes, I have R2012a....I looked in the file, but there isn't a "save as" option.
Truxton
Truxton 2013 年 2 月 11 日
it's also the student version.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeFunction Creation についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by