matlab函数赋值如何实现? 函数的赋值法是怎样的?

\u8dea\u6c42\uff1a\u5982\u4f55\u5b9e\u73b0matlab\u51fd\u6570\u53c2\u6570\u8d4b\u503c

\u5982\u679c\u662f7\u4ee5\u4e0a\u7248\u672c\u7684\u8bdd\u53ef\u4ee5\u8fd9\u6837
myfun2=@(t)myfun(2,3,t);

\u5426\u5219\u7684\u8bdd\u5c31\u8001\u8001\u5b9e\u5b9e\u518d\u5199\u4e00\u4e2am-file\u5c31\u53ef\u4ee5\u4e86
function y=myfun2(t)
y=myfun(2,3,t);
________________
normcdf\u4e0d\u662f\u89813\u4e2a\u53c2\u6570\u5417\uff0c\u6ca1\u660e\u767d\u4f60\u4ec0\u4e48\u610f\u601d\u3002\u80fd\u4e0d\u80fd\u518d\u8bf4\u6e05\u695a\u4e00\u70b9\uff1f

\u4f60\u597d \uff01\u8d4b\u503c\u6cd5\u4e3b\u8981\u7528\u5728\u62bd\u8c61\u51fd\u6570\u4e2d\uff0c

\u53ef\u4ee5\u6c42\u51fd\u6570\u503c\u3001\u8bc1\u660e\u51fd\u6570\u7684\u5355\u8c03\u6027\uff0c\u5947\u5076\u6027\uff0c\u6700\u503c\u7b49\u95ee\u9898

\u4e0b\u9762\u4e3e\u4e00\u4f8b\u8bf4\u660e\uff0c\u5e0c\u671b\u5bf9\u4f60\u6709\u6240\u5e2e\u52a9

\u4f8b\uff1a\u5df2\u77e5\u4e8c\u6b21\u51fd\u6570f(x)\u5bf9\u4efb\u610fx\u3001y\u2208R\u90fd\u6709f(x+y)=f(x)+f(y),\u4e14x>0\u65f6,f(x)<0\uff0cf(1)=-2
(1)\u5224\u65ad\u51fd\u6570f(x)\u7684\u5947\u5076\u6570\u3002
(2)\u5f53x\u2208[-3,3]\u65f6\uff0c\u51fd\u6570f(x)\u662f\u5426\u6709\u6700\u503c\uff1f\u5982\u679c\u6709\uff0c\u6c42\u51fa\u6700\u503c\uff1b\u5982\u679c\u6ca1\u6709\uff0c\u8bf7\u8bf4\u660e\u7406\u7531\u3002

\u89e3\uff1a\u4ee4 x=y=0
\u5f97\u5230f\uff080\uff09=0
f(0)=f(x + -x)= f(x)+ f(-x) \u5947\u51fd\u6570
\u8bbe x10
f(x2)=f(x1+m)=f(x1)+f(m)
\u56e0\u4e3af\uff08m\uff09>0 f(m)<0
f(x2)<f(x1) \u9012\u51cf
\u9012\u51cf\u51fd\u6570 \u6700\u5927\u503c \u662f f\uff08-3\uff09 \u6700\u5c0f\u503c f\uff083\uff09
f\uff08-1\uff09=-f\uff081\uff09= 2
f\uff08-2\uff09= 2f\uff08-1\uff09=4
f\uff08-3\uff09=f\uff08-2\uff09+f\uff08-1\uff09=6
\u540c\u7406 f\uff083\uff09= -6

在Matlab7.0以后的版本中,出现了一种新的函数类型–匿名函数,不但能够完成原来版本中内联函数(inline)的功能,还提供了其他更方便的功能。Matlab首席科学家Moler教授都推荐用匿名函数替代原来的内联函数。我最近学习了一些有关匿名函数的内容,现在总结一下:
1,匿名函数的基本用法。

handle = @(arglist)anonymous_function

其中handle为调用匿名函数时使用的名字。arglist为匿名函数的输入参数,可以是一个,也可以是多个,用逗号分隔。anonymous_function为匿名函数的表达式。举个例子如下:
>> f=@(x,y)x^2+y^2; >> f(1,2) ans = 5

当然输入的是数组也是可以的:
>> f=@(x,y)x.^2+y.^2; %注意需要点(.)运算 >> a=1:1:10; >> b=10:-1:1; >> f(a,b) ans = 101 85 73 65 61 61 65 73 85 101

匿名函数的表达式中也可以有参数的传递,比如:
>> a=1:5; >> b=5:-1:1; >> c=0.1:0.1:0.5; >> f=@(x,y)x.^2+y.^2+c; >> f(a,b) ans = 26.1000 20.2000 18.3000 20.4000 26.5000

c作为表达式中的参数,进行了数据传递。上面都是单重匿名函数,也可以构造多重匿名函数,如:
>> f=@(x,y)@(a) x^2+y^+a; >> f1=f(2,3) f1 = @(a)x^2+y^+a >> f2=f1(4) f2 = 85

每个@后的参数从它后面开始起作用,一直到表达式的最后。
2.使用匿名函数实现符号函数的赋值运算
在老版本的Matlab中,这个功能是由inline函数完成的,现在用匿名函数完成此功能。比如:知道z=2x^3+4x+5,求z在x=3处的2阶导数值。可以先用符号函数算出z的2阶导数的表达式,然后通过匿名函数,把x赋予3的值,得到最后结果:
>> syms x; %定义符号变量 >> z=2*x^3+4*x+5; %定义表达式 >> z1=diff(z,2) %求z的2阶导数的表达式 z1 = 12*x >> z2=eval_r(['@(x)' vectorize(z1)]); %vectorize函数的功能是使内联函 %数适合数组运算的法则 >> z2(3) ans = 36

定义全局变量就可以的,你可以在命令窗口中先分别定义
如:a=2, b=5,c=7,d=11,e=12;
x=[a b c d e];
f=f(x)
回车就OK啦
再如:a=30;b=45;c=60;
x=[a b c];
f=sin(x/180*pi)
用matlab运行一下看看你做到了没!!

  • MATLAB杈撳叆涓涓鍑芥暟,姣斿y=x²,鎬庝箞缁檡璧嬪姹傚嚭x
    绛旓細鎸夌収涓嬪垪姝ラ锛屽彲浠瀹炵幇缁檡璧嬪姹傚嚭x鐨勫姛鑳姐1銆佸缓绔嬭嚜瀹氫箟鍑芥暟鏂囦欢骞朵繚瀛樺湪褰撳墠鏂囦欢鐩綍涓嬶紝鏂囦欢鍚嶄负myfun.m function x= myfun(y)x=sqrt(y);end 2銆佸湪褰撳墠鏂囦欢鐩綍涓嬶紝鍛戒护绐楀彛杈撳叆 >> y=10;x=myfun(y)x = 3.1623 >> y=16;x=myfun(y)x = 4 杩介棶 閭h鏄敤subs鍛 杩樻湁杩欎釜y...
  • matlab鍑芥暟璧嬪煎浣曞疄鐜?
    绛旓細2.浣跨敤鍖垮悕鍑芥暟瀹炵幇绗﹀彿鍑芥暟鐨勮祴鍊艰繍绠 鍦ㄨ佺増鏈殑Matlab涓紝杩欎釜鍔熻兘鏄敱inline鍑芥暟瀹屾垚鐨勶紝鐜板湪鐢ㄥ尶鍚嶅嚱鏁板畬鎴愭鍔熻兘銆傛瘮濡傦細鐭ラ亾z=2x^3+4x+5,姹倆鍦▁=3澶勭殑2闃跺鏁板笺傚彲浠ュ厛鐢ㄧ鍙峰嚱鏁扮畻鍑簔鐨2闃跺鏁扮殑琛ㄨ揪寮忥紝鐒跺悗閫氳繃鍖垮悕鍑芥暟锛屾妸x璧嬩簣3鐨勫硷紝寰楀埌鏈鍚庣粨鏋滐細>> syms x; %瀹氫箟绗﹀彿鍙橀噺 >> ...
  • matlab function閲岄潰鏄鎬庝箞鎶婅繖涓椂鍒荤殑鍊璧嬪缁欎笂涓涓椂鍒
    绛旓細鎵撳紑Matlab锛岀偣鍑绘柊寤->鍑芥暟榛樿鍒涘缓涓涓悕涓篣ntitled2鍑芥暟锛屽叾涓璷utput_args鏄唬琛ㄥ嚱鏁拌繑鍥炵殑缁撴灉锛宨nput_args浠h〃鍑芥暟杈撳叆鐨勫弬鏁拌緭鍏モ渇unction[m]=test_data(n)m=n+1;end鈥濓紝杩欓噷灏嗗嚱鏁板悕绉版敼涓簍est_data锛岃緭鍏ュ弬鏁皀锛岃繑鍥炵粨鏋渕锛宮鏄痭+1鐨勮绠楃粨鏋滄寜ctrl+s閿繘琛屼繚瀛榯est_data鍑芥暟锛岄夋嫨鍑芥暟淇濆瓨鐨...
  • MATLAB琚皟鐢鍑芥暟鐨勫彉閲璧嬪
    绛旓細闂宸茶В鍐炽傝鍏ㄥ眬鍙橀噺鍚庯紝鍦ㄧ敤鍒板彉閲忕殑鍑芥暟涓繕闇瑕佸啀瀹氫箟涓涓嬶紝灏卞彲浠ヤ簡銆
  • matlab 澶氬厓鍑芥暟璧嬪
    绛旓細瀹氫箟鍏ㄥ眬鍙橀噺灏卞彲浠ョ殑锛屼綘鍙互鍦ㄥ懡浠ょ獥鍙d腑鍏堝垎鍒畾涔 濡傦細a=2,b=5,c=7,d=11,e=12;x=[a b c d e];f=f(x)鍥炶溅灏眔k鍟 鍐嶅锛歛=30;b=45;c=60;x=[a b c];f=sin(x/180*pi)鐢matlab杩愯涓涓嬬湅鐪嬩綘鍋氬埌浜嗘病锛侊紒
  • matlab鐭╅樀鍏冪礌濡備綍鐢鍑芥暟璧嬪
    绛旓細澶ч儴鍒嗙殑 matlab 鍑芥暟鏄悜閲忓寲鐨勶紝閭d箞鍙渶锛歺 = 0:0.01:0.83;M = f(x);濡傛灉涓嶈鐨勮瘽锛岄偅灏卞彧鑳斤細M = arrayfun(@f, x);arrayfun 鎸 x 鐨勫间竴涓竴涓殑璋冪敤 f(x)锛岀浉褰撲簬 M(i) = f(x(i))銆傝繖瑕佹瘮绗竴绉嶆柟娉曟參寰堝鍊嶏紝鎵浠ヤ换浣曟椂鍊欓兘搴旇棣栭夌涓绉嶆柟娉曞皾璇曘
  • MATLAB涓庝箞缁欏惈鍑芥暟璧嬪
    绛旓細subs(subs(subs(subs(subs(y,a,1),b,1),c,1),d,1),x,1);濡傛灉鍙槸姹傚肩殑鍑芥暟锛屼笉闇瑕佺敤绗﹀彿鍑芥暟锛屽彲浠ュ啓鎴 y=@(a,b,c,d,x)a+b+c+d+x;璋冪敤鏃 y(1,1,1,1,1)锛
  • 鍦matlab涓瀹氫箟涓涓嚱鏁扮粰涓涓笁缁鍑芥暟璧嬪 瑕佹眰杩欎釜涓夌淮鍑芥暟姣忎釜浣嶇疆鐨...
    绛旓細鍋囧浣犻渶瑕 A(a,b,c)=x 閭d箞锛屽彲浠ヨ繖鏍 s=a*b*c;A=x:2:(x+2*s-2);A=reshape(A,[a b c]);A=permute(A,[2 1 3]);渚嬪瓙 a=2;b=2;c=2;x=2;s=a*b*c;A=x:2:(x+2*s-2);A=reshape(A,[a b c]);A=permute(A,[2 1 3]);>> A A(:,:,1) = 2 4 ...
  • 璺眰:濡備綍瀹炵幇matlab鍑芥暟鍙傛暟璧嬪
    绛旓細濡傛灉鏄7浠ヤ笂鐗堟湰鐨勮瘽鍙互杩欐牱 myfun2=@(t)myfun(2,3,t);鍚﹀垯鐨勮瘽灏辫佽佸疄瀹炲啀鍐欎竴涓猰-file灏卞彲浠ヤ簡 function y=myfun2(t)y=myfun(2,3,t);___normcdf涓嶆槸瑕3涓弬鏁板悧锛屾病鏄庣櫧浣犱粈涔堟剰鎬濄傝兘涓嶈兘鍐嶈娓呮涓鐐癸紵
  • matlab涓,鐢ㄦ埛鑷寤虹珛鐨鍑芥暟濡備綍璧嬪鐨勯棶棰
    绛旓細if length(x)==length(x_value)for i=1:length(x)eval([x(i) '=' num2str(x_value(i))]);end end 杩欐牱鍙互鎶妜鍜寈_value鑱旂郴璧锋潵锛屽鏋滄湁涓嶆噦鍙互杩介棶
  • 扩展阅读:matlab中怎么赋值任意数 ... matlab赋值怎么设置 ... 简单的matlab课题设计 ... matlab的三种赋值 ... matlab中如何实现赋值 ... matlab的赋值语句 ... matlab对函数x赋值 ... matlab赋值法怎么用 ... matlab如何对变量进行赋值 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网