現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
Error "Undefined function or variable"
2 ビュー (過去 30 日間)
古いコメントを表示
I defined a function;
function [maBar, wBar, alphaBar] = hcEqPt(vBar, c1, c2, c3, c4)
wBar = vBar/0.129;
maBar = (36.6 + 0.106*wBar + c4*(wBar^2))/c3;
alphaBar = (acos(1-(c2*wBar*maBar/c1)) + 0.0252)/ 1.14;
end
[maBar_1, wBar_1, alphaBar_1] = hcEqPt(22, 0.6, 0.095, 47500, 0.0026);
disp("At v=22, ma = %d, w = %d, alpha = %d", maBar_1, wBar_1, alphaBar_1);
When I try to use this function to obtain a values of vBar further in the script it shows an error "Undefined function or variable".
Kindly help.
回答 (1 件)
madhan ravi
2019 年 9 月 9 日
[maBar_1, wBar_1, alphaBar_1] = hcEqPt(22, 0.6, 0.095, 47500, 0.0026);
fprintf('At v=22, ma = %d, w = %d, alpha = %d', maBar_1, wBar_1, alphaBar_1);
function [maBar, wBar, alphaBar] = hcEqPt(vBar, c1, c2, c3, c4)
wBar = vBar/0.129;
maBar = (36.6 + 0.106*wBar + c4*(wBar^2))/c3;
alphaBar = (acos(1-(c2*wBar*maBar/c1)) + 0.0252)/ 1.14;
end
22 件のコメント
madhan ravi
2019 年 9 月 9 日
function definition should be at the end of the file when you use it in a script file: https://in.mathworks.com/help/matlab/ref/function.html#description
Shikhar Sharma
2019 年 9 月 9 日
Hey I tried what you mentioned above,
[maBar_1, wBar_1, alphaBar_1] = hcEqPt(22, 0.6, 0.095, 47500, 0.0026);
fprintf("At v=22, ma = %d, w = %d, alpha = %d", maBar_1, wBar_1, alphaBar_1);
function [maBar, wBar, alphaBar] = hcEqPt(vBar, c1, c2, c3, c4)
wBar = vBar/0.129;
maBar = (36.6 + 0.106*wBar + c4*(wBar^2))/c3;
alphaBar = (acos(1-(c2*wBar*maBar/c1)) + 0.0252)/ 1.14;
end
But it still shows undefined function or variable 'hcEqPt'.
madhan ravi
2019 年 9 月 9 日
編集済み: madhan ravi
2019 年 9 月 9 日
Hey what version are you using?? It works for me without a flaw. If you’re using version prior to 2016b save the function in a separate file , the name of the file should be in the name of the function.
madhan ravi
2019 年 9 月 9 日
Man you have some serioud problems in just copying properly. Did you even read the answer properly?? THE FUNCTION DEFINITION SHOULD BE AT THE END OF THE FILE!!!
Shikhar Sharma
2019 年 9 月 9 日
Relax man, I'm quite new to this and trying to learn.
Also, I did remove the function from the beginning of the file and ran the code. But it still shows the error I mentioned above.
madhan ravi
2019 年 9 月 9 日
編集済み: madhan ravi
2019 年 9 月 9 日
Paste the screenshot of the one with the changes you made. Those wiggly orange and red lines are not for decorations hover the mouse over it (it'll display the warning).
madhan ravi
2019 年 9 月 9 日
Copy the below and paste it in a new file named Shikhar.m and run the code , let's see if that triggers any errors.
[maBar_1, wBar_1, alphaBar_1] = hcEqPt(22, 0.6, 0.095, 47500, 0.0026);
fprintf('At v=22, ma = %d, w = %d, alpha = %d', maBar_1, wBar_1, alphaBar_1);
function [maBar, wBar, alphaBar] = hcEqPt(vBar, c1, c2, c3, c4)
wBar = vBar/0.129;
maBar = (36.6 + 0.106*wBar + c4*(wBar^2))/c3;
alphaBar = (acos(1-(c2*wBar*maBar/c1)) + 0.0252)/ 1.14;
end
madhan ravi
2019 年 9 月 9 日
You can remove that line , sir Walter and I suggested in your previous question is because you had defined roots as a variable somewhere so once you clear it from workspace it would'nt be a problem. You can just hover the mouse to that red line and see what message MATLAB displays there (this is only if you're curious to prevent it in the future.) Once you figure it out please do share the solution.
Shikhar Sharma
2019 年 9 月 9 日
To be honest, I had not defined roots anywhere before in the file. When I remove it, the error moves to the next line and happens subsequently.
![Screen Shot 2019-09-08 at 9.32.47 PM.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/237507/Screen%20Shot%202019-09-08%20at%209.32.47%20PM.png)
madhan ravi
2019 年 9 月 9 日
編集済み: madhan ravi
2019 年 9 月 9 日
https://in.mathworks.com/matlabcentral/answers/479467-error-undefined-function-or-variable#comment_743649 - this is the basic reason causing the problem then, I know you would'nt accept it but the fact remains as is.
As you yourself has mentioned https://in.mathworks.com/matlabcentral/answers/479467-error-undefined-function-or-variable#comment_743665
If you're still not able to cope up with all the mentioned above suggestions , I request you to upload your script file here, so that I can rectify the mistakes if any.
Walter Roberson
2019 年 9 月 9 日
You cannot define the same function twice in one script (except in some cases having to do with nested functions)
madhan ravi
2019 年 9 月 9 日
Really? Comeon, that's a pdf file not a script file attach your file with .m extension.
Walter Roberson
2019 年 9 月 9 日
All function definitions must be at the end of a script. No exceptions.
Possibly they intend that you use separate .m files for each section.
madhan ravi
2019 年 9 月 9 日
編集済み: madhan ravi
2019 年 9 月 9 日
Looks like you didn't give any attention to the suggestion , well done :). See the attached file.
Please again don't miss the valuable comment given by sir Walter
Shikhar Sharma
2019 年 9 月 9 日
Thank you very much for your time. I am quite new to this and trying to cope up with it.
Thank you for being patient. :)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
アジア太平洋地域
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)