方法/步骤
1
下述方法描述中,采用如下实例程序进行说明。
%实例程序
[xx,yy] = meshgrid(1:20,1:20);
d = sqrt(xx^2+yy^2);
zz = peaks(10);
out = d + zz;
surf(out);shading interp;
2
MATLAB程序运行错误后,切换到MATLAB命令行中,观察命令行中的错误信息,确定错误原因
在错误信息中,查找源程序中错误代码的行数,点击行数链接,可以直接定位错误语句
错误语句定位后,自动跳转到代码编辑器中,在代码编辑器中通过光标标识错误代码的位置
确定错误语句后,通过F12快捷键在错误语句处设定断点
断点设定完成后,通过F5快捷键重新执行程序,程序会在断点处停止运行,进入调试状态
在调试状态下有多个步骤可以查找程序问题的原因。
(1)将鼠标放置在变量上方,这时代码编辑器会自动显示变量的类型、维数、各维大小等信息,根据此信息帮助程序员查找程序中变量错误原因。
在调试状态下有多个步骤可以查找程序问题的原因。
(2)将问题代码行复制到在MATLAB命令行中执行,重现错误。这样可以反复重新错误,而不中断程序运行,而且不用重新执行程序,提高调试效率。
在调试状态下有多种方法可以查找程序问题的原因。
(3)通过whos、size、help等命令协助确定错误原因。其中,whos命令可以查看当前工作区中变量列表,size可以确定某一变量的维数和各维大小,help可以确定某一 *** 作符或函数的帮助信息。
如:
K>> whos
Name Size Bytes Class Attributes
ans 1x2 16 double
d 20x20 3200 double
filename 1x60 120 char
xx 20x20 3200 double
yy 20x20 3200 double
zz 10x10 800 double
K>> size(zz)
ans =
10 10
K>> size(d)
ans =
20 20
K>> help +
plus - Addition
C = A + B
C = plus(A,B)
plus 的参考页
另请参阅 cumsum, minus, sum, uplus
名为 plus 的其他函数
finance/plus, fixedpoint/plus, symbolic/plus, matlab/plus, +,
symbolic/plus, +, matlab/+, symbolic/+
K>>
仔细分析上述信息,最终确定MATLAB程序执行错误的原因。上述实例中,程序执行错误的原因为:变量a和变量zz的行数和列数不一致,不符合+ *** 作符的要求。
matlab安装好以后启动的文件在安装目录中。
1、首先打开电脑,双击打开电脑桌面上的“我的电脑”。
2、然后在d出来的窗口中 到安装软件的位置,在里面找到bin文件夹,点击打开它。
3、然后在d出来的窗口中有matlabexe的可执行文件,双击它就可以打开了。
4、然后可以右键单击它选择发送到桌面快捷方式,在桌面中双击快捷方式打开。
matlab中不可手动进行分析,只能调用函数,或者自己写代码,函数是:
单因素分析::p=anova1(X)
如:
Score=[75 62 71 58 73;81 85 68 92 90;73 79 60 75 81]';
P=anova1(Score)
含义:比较样本 m×n的矩阵X中两列或多列数据的均值。其中,每一列表示一个具有m个相互独立测量的独立样本。
返回:它返回X中所有样本取自同一总体(或者取自均值相等的不同总体)的零假设成立的概率p。
解释:若p值接近0(接近程度有解释这自己设定),则认为零假设可疑并认为至少有一个样本均值与其它样本均值存在显著差异。
双因素分析:p=anova2(X,reps)
含义:比较样本X中两列或两列以上和两行或两行以上数据的均值。不同列的数据代表因素A的变化,不同行的数据代表因素B的变化。若在每个行-列匹配点上有一个以上的观测量,则参数reps指示每个单元中观测量的个数。
返回:当 reps=1(默认值)时,anova2将两个p值返回到向量p中。 H0A:因素A的所有样本(X中的所有列样本)取自相同的总体; H0B:因素B的所有样本(X中的所有行样本)取自相同的总体。 当reps>1时,anova2还返回第三个p值: H0AB:因素A与因素B没有交互效应。
解释:如果任意一个p值接近于0,则认为相关的零假设不成立。
Matlab程序: disp1=[582 562 653;491 541 516;601 709 392;758 582 487]’; p=anova2(disp1,1)
如果要用手动分析建议你用spss
常微分(ODE)方程的数值求解器有:非刚性求解器(计算的精度从低到高)ode23,ode45,ode113,刚性方程求解器(适用的刚性从弱到强) ode15s,ode23s,ode23t,ode23tb,隐方程求解器ode15i
所谓刚性方程,就是指它的解的曲线有剧烈的或缓慢的变化。如van der Pol方程(教材p144例4)就是一个刚性方程
Ode求解器默认的相对误差是1e-3,绝对误差是1e-6,要改变默认的精度设置,可以用odeset来设定Options。具体设置方法,求助于help功能。Ode求解器中可以求解带有参数的微分方程。
常用的精度设置如
Options=odeset(‘RelTol’, 1e-5,’AbsTol’, [1e-8, 1e-7]);
其中绝对误差可以对每个未知函数的分量分别规定,写成一个向量,维数等于方程的维数。如对各分量的绝对误差设置相同则只须写一个标量误差。
每一积分步第i个分量的误差满足e(i) <= max(RelTolabs(y(i)),AbsTol(i))
如果只要对解的范数作误差控制,而不需对解的每个分量作误差控制,则在Options中可以加上选项’NormControl’, ‘on’ 这时每一积分步误差的范数满足norm(e) <= max(RelTolnorm(y),AbsTol) 这个选项对那些解的范数会等于零的方程特别有用,不用此选项时,为了要达到苛刻的误差要求,步长会取得很小,将大大减慢求解过程以致求解失败
时滞是常数的时滞常微分方程DDE的数值求解器有dde23,要改变默认的设置,可以用ddeset来设定。
常微分方程求解器的options还可以设置一个有用的功能,语法是
Options=odeset( 'Events',@EVENTS);(Options可以是自定义名,其中各种设置如精度设置可以写在一起,用逗号分开),用ode45求解时,可用格式
[TOUT,YOUT,TE,YE,IE] = ode45(@ODEFUN,TSPAN,Y0,Options, P)
在odeset中设置了一个事件函数@EVENTS,是自编m函数,函数名自定。函数的格式是
[VALUE,ISTERMINAL,DIRECTION] = EVENTS(T,Y,P)
事件函数的输入是和微分方程的函数输入相同,顺序相同 事件函数的输出是3个列向量 例如 [VALUE,ISTERMINAL,DIRECTION],名称自定,列向量的维数是事件的个数,VALUE(I) 是事件函数的第I个分量表达式的值, ISTERMINAL(I)=1表示事件函数的第I个分量的值等于零时积分终止,不然等于0 , DIRECTION(I)=0 表示要计算事件函数的第I个分量的所有的零点 (默认), +1 仅计算事件函数第I个分量在零点递增的零点 -1仅计算事件函数的第I个分量在零点递减的零点
TSPAN是微分方程求解区间,例如可用 [0 pi]表示,也可以指定TOUT为求解区间中的一些点列,如TSPAN=0: 01: 32; Y0是微分方程初值问题中的初值,如Y0=[0 0];
TOUT是微分方程求解区间TSPAN中的时间点列,YOUT是时间点列TOUT上方程解的值,是矩阵形式,列数等于方程的维数,TOUT(:,J)是解的第J个分量在时间点列TOUT上的向量值。 TE是列向量,是事件发生的时刻序列 YE的各行向量是事件发生各时刻方程的解的向量值, IE表示在TE时刻发生的事件在事件函数中的序号
在matlab中regress()函数和polyfit()函数都可以进行回归分析。
(1)regress()函数主要用于线性回归,一元以及多元的。它可以提供更多的信息,残差之类的。
(2)polyfit()函数是利用多项式拟合。可以是线性也可以是非线性的。
regress()函数详解
[b,bint,r,rint,stats]=regress(y,X,alpha)
说明:b是线性方程的系数估计值,并且第一值表示常数,第二个值表示回归系数。bint是系数估计值的置信度为95%的置信区间,r表示残差,rint表示各残差的置信区间,stats是用于检验回归模型的统计量,有三个数值其中有表示回归的R2统计量和F以及显著性概率P值,alpha为置信度。
相关系数r^2越大,说明回归方程越显著;与F对应的概率P<alpha时候拒绝H0,回归模型成立。
y表示一个n-1的矩阵,是因变量的值,X是n-p矩阵,自变量x和一列具有相同行数,值是1的矩阵的组合。如:对含常数项的一元回归模型,可将X变为n-2矩阵,其中第一列全为1。
ONES(SIZE(A)) is the same size as A and all ones。
利用它实现X=[ones(size(x))x]
(2)polyfit()函数详解-------------摘自sina小雪儿博客
p=polyfit(x,y,n)
[p,s]= polyfit(x,y,n)
说明:x,y为数据点,n为多项式阶数,返回p为幂次从高到低的多项式系数向量p。x必须是单调的。矩阵s用于生成预测值的误差估计。(见下一函数polyval)
多项式曲线求值函数:polyval( )
调用格式: y=polyval(p,x)
[y,DELTA]=polyval(p,x,s)
说明:y=polyval(p,x)为返回对应自变量x在给定系数P的多项式的值。
[y,DELTA]=polyval(p,x,s) 使用polyfit函数的选项输出s得出误差估计Y
DELTA。它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。则Y DELTA将至少包含50%的预测值。
首先matlab的使用问题,你可以在command windows中进行命令的逐句运行,也可以在Editor中编写整段的程序来运行。一般完成一个任务是采用后者。
对于传递函数的使用,首先是定义分子和分母,多项式的形式。如
num=[1 2]
den=[1 2 1]
s=tf(num,den)
这样就得到了传递函数s,使用的命令是tf
然后你可以进行传递函数的阶跃响应等分析,如
step(s)就是阶跃响应。
矩阵的表示就很简单了,如
A=[1 2;3 4]
就是一个22的矩阵
祝你学习愉快!
以上就是关于matlab怎么查找错误的具体位置全部的内容,包括:matlab怎么查找错误的具体位置、matlab安装好以后启动的文件在哪里、matlab中variance在哪等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)