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 Exchange で MATLAB Mobile Fundamentals についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by