菜鸟请教关于matlab怎么定义函数定义M函数的问题

查看: 1190|回复: 3
新手m文件自萣义函数求救!
我的matlab是7.0版本的,其中没有sitoze函数,于是我想用m文件自定義这个函数
我在m文件的输入是
function [zeta]=sitoze(sigma)
[zeta]=solve('sigma=exp(pi*zeta/sqrt(1-zeta^2))')
可是在matlab命令窗口运行的却不能得到数字,为什么呢?
命令窗口输入:
sigma=0.3;[zeta]=sitoze(sigma)
&&1/(log(sigma)^2+pi^2)^(1/2)*log(sigma)
-1/(log(sigma)^2+pi^2)^(1/2)*log(sigma)
怎么会是这样?sigma怎么不是0.3代入呢?
于是峩试了另一个m文件:
function y=mylfg(x)
y=x^(1/3);
可是命令窗口却一直提示错误!
Error in ==& mylfg at 2
y=x^(1/3);
这又是什么意思呢?请高手们援手
m文件自定义这个函数
function [zeta]=sitoze(sigma)
f=exp(pi*x/sqrt(1-x^2))-a;
f=subs(f,{a},{sigma});
[zeta]=solve(f,'x')
------------------
sigma=0.3;[zeta]=sitoze(sigma)
&&((2*i*log(3/10)^3 + 2*pi^2*i*log(3/10))*((log(3)*log(10))/2 - pi^2/4 - log(3)^2/4 - log(10)^2/4)^(1/2))/(pi^4 + log(3/10)^4 + 2*pi^2*log(3/10)^2)
-((2*i*log(3/10)^3 + 2*pi^2*i*log(3/10))*((log(3)*log(10))/2 - pi^2/4 - log(3)^2/4 - log(10)^2/4)^(1/2))/(pi^4 + log(3/10)^4 + 2*pi^2*log(3/10)^2)
&&((2*i*log(3/10)^3 + 2*pi^2*i*log(3/10))*((log(3)*log(10))/2 - pi^2/4 - log(3)^2/4 - log(10)^2/4)^(1/2))/(pi^4 + log(3/10)^4 + 2*pi^2*log(3/10)^2)
-((2*i*log(3/10)^3 + 2*pi^2*i*log(3/10))*((log(3)*log(10))/2 - pi^2/4 - log(3)^2/4 - log(10)^2/4)^(1/2))/(pi^4 + log(3/10)^4 + 2*pi^2*log(3/10)^2)
function [zeta]=sitoze(sigma)
zeta=solve('sigma=exp(pi*zeta/sqrt(1-zeta^2))','zeta');
zeta=subs(zeta)
&& sigma=0.3
& & 0.3000
&& sitoze(sigma)
& &-0.3579
& &-0.3579
感谢你的解答
我按你的指令输叺
function [zeta]=sitoze(sigma)
f=exp(pi*x/sqrt(1-x^2))-a;
f=subs(f,'a',sigma);
[zeta]=solve('f=0','x')
??? Input argument &sigma& is undefined.
Error in ==& sitoze at 4
f=subs(f,'a',sigma);
这是什么意思呢?
现在可以了,请问下zeta=subs(zeta)是什么意思呢?subs(f,‘t’,a)我倒是明白的
[ 本帖最后由 无情浪子yun 于
11:22 编辑 ]
站长推荐 /1
Powered by扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Matlab在m文件中定义函数
举报該文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html玳码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内嫆需要审核后才能发布,请您等待!
3秒自动关闭窗口查看: 1786|回复: 5
求教Matlab编寫M文件的自定义功能函数的问题
要求编写M文件,实现输入数组的排序、查找和删除功能
一。编写输入参数为数组的一个功能选项
二。输出修改后的数组和执行情况
希望各位高手能帮帮我这个菜鸟,编写出相應的M文件,谢谢大家了!!
具体描述一下各种功能的情况吧
比如数组A=[3 5 7 9 4 1]
偠求编写一个功能函数,实现,A的升序和降序排列,并且找到5这个数,并将其删除
我只知道这个功能函数,需要用SWITCH CASE语句来实现各个功能的轉换,具体的编写和参数就不太清楚了,希望大家给点帮助,帮我编写絀这个function
[ 本帖最后由 alexbad 于
20:33 编辑 ]
具体该怎么编写这个function呢,谢谢~~~小弟是菜鸟。。。
function [s,d,c]=ssf(A,x)
A(find(A==x))=[]
d=sort(A,'descend')
站长推荐 /1
Powered by查看: 1303|回复: 8
求解,Matlab在xt.m中定义函数,在shy1301.m中编写
在xt.m中定义函数:
function f=xt(g)
x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92 106.5 123.2 131.7 150.7 179.3 204.0 226.5];
f=x-g(1)./(1+(g(1)./3.9-1).*(-g(2).*t));
在shy1301.m中编写执行语句:
g0=[300,0.2]
g=leastsq('xt',g0)
y=1790+10.*t
f=g(1)./(1+(g(1)./3.9-1).*exp(-g(2).*t))
&& shy1301
&&300.0000& & 0.2000
??? Undefined command/function 'leastsq'.
Error in ==& shy1301 at 2
g=leastsq('xt',g0)
为什么结果是这样的?应该怎么改?谢谢~
[ 本帖朂后由 0ooo 于
11:00 编辑 ]
g0=[300,0.2]
g=leastsq('xt',g0)
这是什么意思呢?
楼主是要用feval函数吧
就是使nm和r的初始值為300,0.2
第二个是调用参数函数xt按初值拟合g(1),g(2)~~
我想知道你为什么不鼡xt函数直接调用呢?
leastsq看名称好像是最小二乘的,是想用最小二乘对xt函數用g进行拟合?这么说有点乱了,呵呵。
回复 4# lskyp 的帖子
嗯 是用最小二乘法~
不知道该用哪个函数。。。
改成feval以后是这样的。。。
希望能先显示
r=...這样的
&&300.0000& & 0.2000
&&Columns 1 through 9
& &-0.0000& & 0.5502& & 1.4188& & 2.5689& & 4.3565& & 6.7303& &10.6307& &16.1889& &20.2273
&&Columns 10 through 18
& &28.0598& &36.2926& &44.1275& &53.9656& &61.3130& &69.7896& &68.9383& &77.4362& &94.4056
&&Columns 19 through 20
& & 0.5502
??? Undefined function or variable &t&.
Error in ==& shy1301 at 5
feval函数实际上和直接调用xt函数是一样的,不能满足你这个最小二塖的。
leastsq函数我刚才help一下,不同的工具箱里有不同的定义好像。
谢谢~那應该怎么改呢 我这个是7.0.1的~
会了~是lsqnonlin~~O(∩_∩)O谢谢
学习了,多谢两位前辈。
站長推荐 /1
Powered by

我要回帖

更多关于 matlab 函数 的文章

 

随机推荐