24小时热门版块排行榜    

查看: 2759  |  回复: 12
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

文家武

金虫 (小有名气)

[求助] Matlab中如何自己定义一个新函数,然后计算时可以调用?

Matlab中如何自己定义一个新函数,然后计算时可以调用?
简单的举个例子:        编写一个输入半径,计算圆的面积和球的体积 的M文件.
        前两行是文件头,一般说明文件的 类型(M-file),文件名(tutex2),和文件的功能(输入半径,计算圆的面积和球的体积),后面是文件体,主要是解决特定问题的程序代码.
        % M-file, tutex2.m
        % 输入半径,计算圆的面积和球的体积
        r = input('Type radius:'); %从键盘输入Type radius的值,并将它赋值给r.
        area=pi*r^2;
        volume=(4/3)*pi*r^3;
        fprintf('The radius is %12.5f\n',r)
        fprintf('The area of a circle is %12.5f\n',area)
        fprintf('The volume of a sphere is %12.5f\n',volume)


用的2012a版本的。怎么才可以调用呢?最好说的详细点(带截图最好了),百度上的用过,出错了。谢谢了。
回复此楼

» 收录本帖的淘帖专辑推荐

matlab

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

BlueAsia

新虫 (小有名气)

【答案】应助回帖

★ ★
文家武: 金币+2, ★★★很有帮助, 谢谢,却是对半径要写出全部的英文,缩写不行 2012-11-01 15:30:51
引用回帖:
7楼: Originally posted by 文家武 at 2012-10-21 09:55:40
文件类型:Microsoft Office Access表快捷方式(.mat)
描述:tutex2
位置:E:\matlab\Matlab\bin

我觉得是不是我存储时除了问题了的、...

保存函数应该是M-file
.mat是输入存储的矩阵变量。
另外,LZ的2012a我没用过,我的小笔记本只能跑起来2008a,所以至少在我的版本里,r要改成radius的。
程序:
function [area,volume] = tutex2(radius)
area=pi*radius^2;
volume=(4/3)*pi*radius^3;
fprintf('The radius is %12.5f\n',radius)
fprintf('The area of a circle is %12.5f\n',area)
fprintf('The volume of a sphere is %12.5f\n',volume)
end
结果:
[a,v] = tutex2(10.0);
The radius is     10.00000
The area of a circle is    314.15927
The volume of a sphere is   4188.79020
8楼2012-10-22 09:36:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2012-10-20 03:09:36
既然是函数,就有输入,建立一个m文件叫tutex2.m,内容如下
CODE:
function [area,volume] = tutex2(radius)
area=pi*r^2;
volume=(4/3)*pi*r^3;
fprintf('The radius is %12.5f\n',r)
fprintf('The area of a circle is %12.5f\n',area)
fprintf('The volume of a sphere is %12.5f\n',volume)
end

保存后,在命令行输入
CODE:
[a,v] = tutex2(10.0);

可以得到计算结果
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2012-10-19 21:31:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

文家武

金虫 (小有名气)

引用回帖:
2楼: Originally posted by libralibra at 2012-10-19 21:31:33
既然是函数,就有输入,建立一个m文件叫tutex2.m,内容如下
function  = tutex2(radius)
area=pi*r^2;
volume=(4/3)*pi*r^3;
fprintf('The radius is %12.5f\n',r)
fprintf('The area of a circle is %12.5f\n', ...

首先谢谢您了。
但是我按照您说的,1 在命令框输入程序 2 File-new-save workspace-土tutex2  3  clc 清空了整个命令框 4 输入[a,v] = tutex2(10.0);5  [a,v]=tutex2(10.0)
Undefined function 'tutex2' for input arguments of type 'double'.
3楼2012-10-19 23:36:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

双击打开保存的tutex2.m文件,然后点一下m editor的小绿色箭头运行,会弹出一个对话框,然后选择change folder
然后再输入[a,v] = tutex2(10.0);试试
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2012-10-20 04:30:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见