matlab画图l函数的变量问题
fori18t000.110uut1,usubsu,t,t0figurenum2striplott0,uxlabel时间tylabel响应u,num2striylabelnum2strititle第,num2stri,阶自由振动endut81阶矩阵我打都错求大神帮忙

声明:本网站依照法律规定提供财经资讯,未授权或允许任何组织与个人发布交易广告。对任何广告信息请谨慎交易,谨防诈骗。举报邮箱:xxxxxxxxx@qq.com
2016-08-10 00:52最佳答案
nlinfit()函数错误使用,这是一个比较常见使用错误。解决的方法:
1、使用时,应把变量 L、T看成 x 向量组。即
x=[ L T]
2迹触管吠攮杜归森害缉、自定义函数应写成
func=inline('cos(beta(1))*sqrt(x(:,1)^2+beta(2)^2)-sin((x(:,2)-28.421)*15*pi/180)','beta','x');
3、nlinfit()函数应写成
beta=nlinfit(x,y,func,[0 0]);
如还有问题,可以再交流。
1、使用时,应把变量 L、T看成 x 向量组。即
x=[ L T]
2迹触管吠攮杜归森害缉、自定义函数应写成
func=inline('cos(beta(1))*sqrt(x(:,1)^2+beta(2)^2)-sin((x(:,2)-28.421)*15*pi/180)','beta','x');
3、nlinfit()函数应写成
beta=nlinfit(x,y,func,[0 0]);
如还有问题,可以再交流。
其他回答(共7条)
-
2016-08-10 01:07 龚子飞 客户经理
可不可以尝试自己控制迭代次数,然后将所得的结果生成矩阵。最后在用画图函数将其画出来
-
2016-08-10 01:04 黄相柏 客户经理
你的参数太多了,自变量m,k,l,加上x,共有四个,加上函数值y,总共是五个。如果不假设某些量是定值,这是一个五维的图,任何一个数学软件也画不出来的。
可以假设某两个量为定值,Matlab就可以画了。如果假设k,l为常数,可以画出y=y(m,x)的图像,代码如下:
x=1:10^5; k=1; l=1; m=1:20;
[x,m]=meshgrid(x,m);
y=m.*k.*胆哗册狙夭缴差斜倡铆x.*(m-x)+l*x;
mesh(x,m,y)
m的取值范围是随便取的。这个可以自己设定。固定(l,m),(m,k),同样可以画出y随另外两个变量的变化图形。
-
2016-08-10 01:01 龚峰毅 客户经理
蚁群算法TSP(旅行商问题)通用matlab程序!!
function [R_best,L_best,L_ave,Shortest_Route,Shortest_Length]=ACATSP(C,NC_max,m,Alpha,Beta,Rho,Q讥酣罐叫忒既闺习酣卢)
%%=========================================================================
%% ACATSP.m
%% Ant Colony Algorithm for Traveling Salesman Problem
%% ChengAihua,PLA Information Engineering University,ZhengZhou,China
%% Email:aihuacheng@gmail.com
%% All rights reserved
%%-------------------------------------------------------------------------
%% 主要符号说明
%% C n个城市的坐标,n×2的矩阵
%% NC_max 最大迭代次数
%% m 蚂蚁个数
%% Alpha 表征信息素重要程度的参数
%% Beta 表征启发式因子重要程度的参数
%% Rho 信息素蒸发系数
%% Q 信息素增加强度系数
%% R_best 各代最佳路线
%% L_best 各代最佳路线的长度
%%=========================================================================
%%第一步:变量初始化
n=size(C,1);%n表示问题的规模(城市个数)
D=zeros(n,n);%D表示完全图的赋权邻接矩阵
for i=1:n
for j=1:n
if i~=j
D(i,j)=((C(i,1)-C(j,1))^2+(C(i,2)-C(j,2))^2)^0.5;
else
D(i,j)=eps;
end
D(j,i)=D(i,j);
end
end
Eta=1./D;%Eta为启发因子,这里设为距离的倒数
Tau=ones(n,n);%Tau为信息素矩阵
Tabu=zeros(m,n);%存储并记录路径的生成
NC=1;%迭代计数器
R_best=zeros(NC_max,n);%各代最佳路线
L_best=inf.*ones(NC_max,1);%各代最佳路线的长度
L_ave=zeros(NC_max,1);%各代路线的平均长度
while NC<=NC_max%停止条件之一:达到最大迭代次数
%%第二步:将m只蚂蚁放到n个城市上
Randpos=[];
for i=1:(ceil(m/n))
Randpos=[Randpos,randperm(n)];
end
Tabu(:,1)=(Randpos(1,1:m))';
%%第三步:m只蚂蚁按概率函数选择下一座城市,完成各自的周游
for j=2:n
for i=1:m
visited=Tabu(i,1:(j-1));%已访问的城市
J=zeros(1,(n-j+1));%待访问的城市
P=J;%待访问城市的选择概率分布
Jc=1;
for k=1:n
if length(find(visited==k))=......余下全文>>
-
2016-08-10 00:58 龚崇松 客户经理
一般有两种方式话频谱图
第一种是用matlab自带的频谱分析的画图函数 (可以尝试用plomb)直接画图
第二种是先通过,fft,psd,plomb 返回频谱功率或者频谱密度,然后在直接用plot等函数画图。
如果说只是想画个频谱图看一下,那么推荐直接用plomb就足够了。
-
2016-08-10 00:55 齐晓姝 客户经理
其实我不是很明白楼主为什迹锭管瓜攮盖归睡害精么要把问题复杂化。楼主完全可以把需要的变量存入一个100维的向量L中,for循环中的语句就变为 L(i)=L(i)+i;
-
2016-08-10 00:49 龙宣霖 客户经理
你好,我检查了,写法没问题。应该是你的disc函数,出现了问题,或者除了0,或者其他。
其中,也提一些修改建议:
syms phia thetaa;这句不需要,matlab不需要定义。
保存为数组方法:
function lengthp= workspace11(il,ia,ia0)global l a a0;l=il;a=ia;a0=ia0;flag=1 for phia=0:18:90 护讥篙客蕻九戈循恭末 for thetaa=0:18:90 lengthp(flag)=disc11(phia,thetaa); end flag=flag+1; endend函数名字建议不采用matlab敏感的名字,disc,workspace都是matlab自有的。
希望对你有帮助。
-
2016-08-10 00:46 赵颐轩 客户经理
出现了Conversion to double from sym is not possible问题,是因为Y这个矩阵是一个符号矩阵,里面有t这个符号变量,所以无法画图。如果你希望t=0:0.1:2,那Y=subs(Y,t,s)把t换成数值,才能画图。
另外有一个问题,B=expm(A)这一句会使得矩阵B中有的元素是复数虎攻港纪蕃慌歌苇攻俩,导致把Y换成数值后是出现复数,那么画出来的图就不知道是不是你想要的。
下面是一些相关的东西:exp是对矩阵中各个数分别作exp,expm是对整个矩阵做exp.
我改了一下,你看看吧
v=10
k=0.05
syms t
A=[0,0,0,0;0,0,-k.*v.*t,0;0,k.*v.*t,0,v.*t;0,0,0,0]
B=expm(A)
R=B(1:3,1:3)
P=B(1:3,4:4)
E=[0;0;1]
l=2
N=R*l*E+P
Z=N(3)
Y=N(2)
s=0:0.1:2
Y=subs(Y,t,s)
plot(s,Y)
没有满意答案?看看这些问答能否帮助您?
相关百科精选
问答难题榜,是高手就来挑战!
已有 86485 位专家入驻汇财吧问答
已经帮助 1173961 人解决了问题