当MATLAB出错时,如何让它停止出错的地方

发布于 科技 2024-08-03
10个回答
  1. 匿名用户2024-01-31

    当MATLAB出错时,如何让它停在出错的地方,然后像调试一样停在那里,而不是仅仅显示错误并跳出程序。

    1] 断点也可以在 MATLAB 中设置,您可以在 M 文件菜单中找到,这非常简单。

    2] 我不建议你使用断点,但你想问的是,我怎样才能更好地调试 MATLAB 程序?不是吗?

    例如,如果你调试一个循环,你可以在循环中添加一个 disp() 语句,让它输出一个你关心的变量,当它出错时,你可以清楚地看到它。

    其余部分也是如此。

    还有一个子例程要逐一调试,确认可以工作再放到主程序中引用,这样可以避免你的程序太大导致调试的麻烦,matlab跳出程序的原因有很多,即使让你让它突破断点, 其实会带来不好的结果,设置断点后你就会明白我在说什么。在正确的时间监控您关心的内容。

    附言:1]根据你的补充,你其实可以用减半的方法,这样当程序运行到一半的时候,输出一个变量,如果正确的话,就意味着如果出了问题,可能是在循环的后半部分,依此类推,但是你的循环数量其实并不多,我处理的循环比你的复杂得多, 呵呵。不要紧张,慢慢来。

    2] 如有必要,您可以驻扎我。

    3]建议您经常来。

    看看呵呵。

  2. 匿名用户2024-01-30

    dbstop if error;% 错误停止在错误的行处,通常写在脚本的开头。

  3. 匿名用户2024-01-29

    出现错误的原因是题主给出的matlab的**粗心大意,f的两个表达式末尾少了一个括号。 应该是。

    f=[30*cos(atan((y)/(, 30*cos(atan((y)/(;

    在更改后运行结果。

  4. 匿名用户2024-01-28

    gradval=zeros(m,n);

    因为你以后不用,但是程序在执行时会生成这个变量,会占用时间和空间,所以会提示你。 这是一个警告,而不是错误,对程序的结果没有影响。

    在后续程序中,您的 diffx diffy 不会逐渐扩展其长度,因此您无需预先分配它。

    您的 diffx diffy 全部分配一次。 同样,这是一个警告。

    希望能得到一个满意的答案,谢谢。

  5. 匿名用户2024-01-27

    MATLAB 问题的 dsolve() 函数的表达式是错误的。

    这应该说是系统的零输入。

    syms y(t)

    d2y=diff(y,2);dy=diff(y,1);

    disp('系统零输入')

    y=dsolve(d2y+3*dy+2*y==0,y(0)==3,dy(0)==4);

    y=simplify(y)

    ezplot(y),title('LTI 系统的零输入')xlabel('t');ylabel('y(t)'系统的零状态和全响应的表达式与系统的零输入的表达式相似。

    运行结果。 由于**的实施时间较长,如有需要,可以在私聊中提供。

  6. 匿名用户2024-01-26

    因为 >>k=0; t=-1;导致 t 不再是 500,从而导致在 [0:t-1] t 末尾生成矩阵时出错。

    在最终图前添加 t=500 或将图中的 t 更改为 500; 例如。

    t=500;

    plot(zs,[0:t-1]/t,'-r',[0:tan(1):tan(1)*length(fz)-1]/(length(fz)),fz,'-g');

    结果:<>

  7. 匿名用户2024-01-25

    这个 matlab** 错了吗? 错误出在 z-expression 上,出错的原因是没有使用好的点运算符。 不要改变重点,不要改变重点。 正确的写法是:

    z=50./(;

  8. 匿名用户2024-01-24

    由于 x,y 是 11 11 的矩阵,因此计算坐标系中点 (,0) 与坐标系中点之间的夹角的值 beta1 也是 11 11 的矩阵。 因此,需要四个 for 循环来计算。

    x=-5:5;y=0:10;[x1,y1] = meshgrid(x,y);

    m,n]=size(x1);

    m1,n1]=size(y1);

    for i=1:m

    for j=1:n

    for k=1:m1

    for l=1:n1

    x=x1(i,j);y=y1(k,l);

    if(x>>0)

    beta1(i,j)=atand(abs((y-0)./(x+;

    elseif(x<>0)

    beta1(i,j)=90+atand(abs((x+;

    elseif(x==

    beta1(i,j)=90;

    elseif(y==0&x>

    beta1(i,j)=0;

    elseif(y==0&x<

    beta1(i,j)=180;

    endend

    endend

    enddisp(beta1)

    运行结果。

    如果您仍有疑问,请再谈一次。

  9. 匿名用户2024-01-23

    这个程序错误太多了,很多地方都是莫名其妙的:

    1、原**第10行括号误为全角,即“d(1)”应为“d(1)”;

    2、原**第16行括号误认为方马铃薯括号,即“f[1]”应为“f(1)”;

    3.原文**第12行的c没有定义,不知道原意是什么,这里尽量改成c;

    4.原**的第2-3行定义符号变量基本没有效果(因为代码的第8行和第15行分别分配给变量),并删除它们。 最初,有两个 *** 定义为符号变量:

    1)C变成列向量,后面用到C的地方要注意转换;

    2)a、b、c都是符号变量,第18行的结果也是符号类型,不能保存到f。

    5.在原**第21行的循环中,由于t2的长度为10,因此需要保证g的长度与t2的长度相同才能绘制,因此将n+10改为10。

    修改后的**如下(需要注意的是,除了前两个错误是容易判断的语法错误外,后三个错误都是运行时错误,修改只是试图猜测错误**的可能目的是什么,但并不保证与作者的原意相同):

    cleara=[ ;b=cumsum(a);n=length(a);for i=1:(n-1) c(i)=(b(i)+b(i+1))/2;endc=c;d=a;d(1)=[d=d';e=[-c;ones(1,n-1)];c=inv(e*e')*e*d;c=c'舒琪茶; a=c(1);b=c(2);f=f(1)=a(1);for i=2:(n+10) f(i)=(a(1)-b/a)/exp(a*(i-1))+b/a;endg=g(1)=a(1);for i=2:

    10 g(i)=f(i)-f(i-1);endt1=2008:2012;t2=2008:2017;gplot(t1,a,'o',t2,g)

    运行结果。

  10. 匿名用户2024-01-22

    y=2*log(t).*exp(t)*sqrt(pi)

    矩阵中相应元素的乘法称为点的乘法

相关回答
7个回答2024-08-03

您可以先提前对工作项目进行合理的规划和适当的安排,然后才能在目标明确、思路清晰的状态下有条不紊地推进工作进度,使工作任务能够按时完成,我们也可以在提醒工具的协助下开兴, 对工作任务设置一个粗略的提醒,以便在提醒通知的监督下提高执行能力,提高工作效率。

23个回答2024-08-03

最重要的是尽可能少地把碎片文件放在系统盘上,比如安装几十个ks或者几个MB的小程序,因为这样会增加系统检测系统文件的时间,而大卷则没有问题,比如单个文件超过100MB。 但是,最好不要将其放在C盘中。 >>>More

20个回答2024-08-03

按快捷键:Ctrl + 鼠标滚轮进行缩放。

快捷键,又称快捷键或热键,是指通过一些特定的键、键序或组合键完成操作,很多快捷键经常搭配使用,如Ctrl键、Shift键、Alt键、FN键、Windows平台下的Windows键和Mac上的Meta键。 键盘快捷方式可用于打开、关闭和导航“开始”菜单、桌面、菜单、对话框和网页,还可以在 Word 中使用快捷方式。 >>>More

23个回答2024-08-03

那个手机壳比你的手机还大,你可以试试热胀冷缩,把手机壳放在冰箱里放一段时间。 第二天,把它拿出来看看,如果不起作用,就换掉。

13个回答2024-08-03

学一会儿,玩一会儿。 工作和休息的结合是集中注意力的唯一途径。