norm inbuilt function code
現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
古いコメントを表示
I am trying to find the code for the inbuilt function norm, but, by typing "open norm" I would only find a script describing it, not the code. I need to write the m file as funtion in order to add it in my folder with the other functions (for instance deg2rad which is another but its code is aveilable by typing "open deg2rad")
採用された回答
dpb
2018 年 4 月 10 日
That's how all builtin functions work in Matlab, that's why they're "built in"; the working part of the function is compiled code built into the executable for the program. Core functionality is incorporated in that manner to improve performance; other routines are just supplied m-code no different than user-written as far as their implementation. There are also p-code and mex files...
Why do you think you need to include the function in some other location; there really is no reason to do that in general. Occasionally one will take a specific m-file and create a slightly modified version for a specific purpose, but it's highly recommended to make the user copy distinct and to not modify nor alias actual distributed functions.
6 件のコメント
Francesco Fortunato
2018 年 4 月 10 日
If i don't include the function I keep get the message "undefined function", I don't know the reason but that's why I think I need that, any suggestion? Thank you!
James Tursa
2018 年 4 月 10 日
編集済み: James Tursa
2018 年 4 月 10 日
Post the code you are using, and copy & paste the entire error message for us to see. It could be you are calling norm( ) with a non-numeric input argument.
Guillaume
2018 年 4 月 10 日
The core problem has nothing to do with the code for norm but we don't know what the core problem is. As James says, show us the real problem.
Francesco Fortunato
2018 年 4 月 10 日
編集済み: Walter Roberson
2018 年 4 月 10 日
The portion of the code (which is truly long) involved is
%%Add Node callback Subfunction
function addnode(hObject, EventData )
global guihandles cmenus input
import javax.swing.*
if ischar(hObject)
objlabel = hObject;
childrens = 0;
else
objlabel = get(hObject,'Label');
childrens = get(hObject,'Children');
end
if ~norm(childrens)
switch objlabel
case 'Orbit'
if ~isfield(guihandles.nodehandles,'orbit')
%Creo un nodo 'Orbit', lo aggiungo e aggiorno
guihandles.nodehandles.orbit = javax.swing.tree.DefaultMutableTreeNode();
% icon = javax.swing.ImageIcon('logo.png')
% guihandles.nodehandles.orbit.setUserObject(JLabel('a',icon,0))
guihandles.nodehandles.orbit.setUserObject(objlabel);
guihandles.nodehandles.root.add(guihandles.nodehandles.orbit);
guihandles.albero.updateUI;
guihandles.htextbox.append( ['Orbit added to the Simulation Tree',guihandles.newline ]);guihandles.htextbox.setCaretPosition(guihandles.htextbox.getText.length);
%Add subguihandles.menus to Orbit Menu
guihandles.menus.earth = uimenu( guihandles.menus.orb ,'Label','Aspherical Gravity Field','Callback',{@addnode});
guihandles.cmenus.earth = uimenu( guihandles.cmenus.orb ,'Label','Aspherical Gravity Field','Callback',{@addnode});
guihandles.menus.third = uimenu( guihandles.menus.orb ,'Label','Third Body Perturbation','Callback',{@addnode});
guihandles.cmenus.third = uimenu( guihandles.cmenus.orb ,'Label','Third Body Perturbation','Callback',{@addnode});
guihandles.menus.drag = uimenu( guihandles.menus.orb ,'Label','Atmospheric Drag','Callback',{@addnode});
guihandles.cmenus.drag = uimenu( guihandles.cmenus.orb ,'Label','Atmospheric Drag','Callback',{@addnode});
guihandles.menus.srp = uimenu( guihandles.menus.orb ,'Label','Solar Radiation Pressure','Callback',{@addnode});
guihandles.cmenus.srp = uimenu( guihandles.cmenus.orb ,'Label','Solar Radiation Pressure','Callback',{@addnode});
guihandles.menus.thrstr = uimenu( guihandles.menus.orb ,'Label','Thrusting Strategy','Callback',{@addnode});
guihandles.cmenus.thrstr = uimenu( guihandles.cmenus.orb ,'Label','Thrusting Strategy','Callback',{@addnode});
else
guihandles.htextbox.append( ['Orbit Node has already been added to the Simulation Tree',guihandles.newline ]);guihandles.htextbox.setCaretPosition(guihandles.htextbox.getText.length);
end
The error message arises when clicking on one menu in the GUI
Undefined function 'norm' for input arguments of type 'matlab.ui.container.Menu'.
Error in filename>addnode (line 2485)
if ~norm(childrens)
Error while evaluating Menu Callback
Guillaume
2018 年 4 月 10 日
You focused on the wrong part of the error message. It's not that it's undefined, it's that it's not defined for inputs of type matlab.ui.container.Menu. Indeed, what do you expect the norm of a menu to be?
Clearly the problem is not with norm, the problem is with the line
if ~norm(childrens)
which makes no sense.
dpb
2018 年 4 月 10 日
As James surmised, it's not that the code for norm is missing; it's that you're calling it with something other than a numeric input...read the message carefully:
Undefined function 'norm' for input arguments of type 'matlab.ui.container.Menu'.
You've got to dereference the GUI object to get the content thereof; I'm no GUI kinda' guy to even have a clue what a matlab.ui.container is or would look like, but certainly a Menu of one won't be anything meaningful to take the norm of...
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索
参考
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)
