phfb.net
当前位置:首页 >> mAtlAB实现分段函数的循环 >>

mAtlAB实现分段函数的循环

t=-1:0.01:3; % 自己根据需要设置 m=zeros(size(t)); for i=1:length(t) if (t(i)>=0)&(t(i)<1) m(i)=t(i); elseif (t(i)>1)&(t(i)<=2) m(i)=-t(i)+2; else m(i)=0.1; end end plot(t,m,'r') grid on

function yout=myfun1(x,D)% myfun1 help h=5% |- h ,x>D% y=f(x)=| h/(D.*x) ,|x|<=D% |- -h ,x<-D if x>D yout=5; elseif abs(x)<=D yout=5./(x.*D); elseif x<D yout=-5; end 上边是函数,h我定义成5了,你可以根据你实际来修改,或者像x和D一样作为参数传进来 d=2;>> for k=1:100 x(k)=-50+k; y(k)=myfun1(x(k),d); end plot(x,y) 这是在matlab中调用方法

你这个程序问题太多了1. 不推荐使用for循环.2. 你每得出一组y就画一次曲线,最终得出的是关于t的四条y曲线.3. elseif 应该连用,不然每一个if都要一个end,而且else最好和if在不同的行4. t到底定义成符号变量还是向量呢?错误还有很多,任

你这个被积函数比较复杂,估计只能用matlab的ode45之类的数值积分方法了.给你提供了一个代码例子,你可以按照自己实际数据修改.function testclc;close all;format short gphi_ij=@(x,y) phi_i(x,y)*phi_j(x,y);options = odeset('RelTol',1e-4,'

matlab对分段函数有非常简单的表示,对此例而言,语句如下:x = -5:.1:5; y = (3*x.^2+1).*(x>=1) + (2-x.^3).*(x对于楼主的程序,错误之处在于:elseif -1应该为 elseif -1也就是说 不等式串 必须表达为 单个的不等式的“且”关系.没注意到 1楼 已经回答了.本回答没有重复1楼回答的意思.

clc;clear;alpha = 0;theta = 0;y = [];dy_dx = [];z = [];for x = 0:.02:100 if (x 追问: 抱歉,我试了很多次,还是不太明白,劳烦你再具体一些可以吗?谢谢! 追答: clc; clear; alpha = 0; theta = 0; Y = []; DY_DX = []; Z = []; for x = 0:.02:100 if

优化工具箱里面有很多函数,可以自己找找简单的求解线性规划可以用linprog

function f=fc(y)global D;a=50;b=1;c=5;f1=(1+D)*y(1)+3*y(1)*(2*(y(2)+y(1)^2)-y(1)^2);f2=c*(15*y(1)*y(2)^2+10*y(2)*y(1)^3+y(1)^5)-2*(1+D)*y(1)^3;f=[f1; f2];clear;clc;s=[];global D;for D=0:0.01:1 s0=fsolve('fc',[rand;rand]); s=[s;s0'];end把所有解都存在s里了

是你判断的语句有问题,在一个区间不能直接写,应该用“&&”连接. clear all; close all fs = 800; t=0:1/800:0.8; ut=zeros(size(t)); N=length(t); for i=1:N if (t(i)>=0&&t(i)<=0.4) ut(i) = 100*sin(2*pi*50*t(i)); else if (t(i)>0.4&&t(i)<=0.8) ut(i) = 100*sin(2*pi*50*t(i))+50*sin(2*pi*350*t(i)); end end end plot(t,ut); grid on;

clc,clear;close alla=(1:10)/5; %a改成你自己的x=0:0.01:10;for i=1:10 x_temp=x((i-1)*10+1:i*10); S=(x_temp-(ones(1,10)*a(i)).^2); plot(x_temp,S) hold onend

网站首页 | 网站地图
All rights reserved Powered by www.phfb.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com