求助Matlab大神! 如何让程序自动改变参数重复运行,并保存数据

求助Matlab大神! 如何让程序自动改变参数重复运行,并保存数据,第1张

可以加一个大循环,N为变量,步长为200 (eg: for N=384:200:

如果不确定循环结束时N的值,可以while 1 {if (条件)break;end}

保存mm就很简单了

运行前,建立一个空矩阵temp_mm=[];

每次N值改变完后,temp_mm=[temp_mm;mm];(将每次mm的值保存在temp_mm的最后一行)

function cat_mouse

clear

clc

mov=avifile('cat_mouseavi');

ts=0:0005:05;

x0=[0,0];

[t,x]=ode45(@cat_m,ts,x0);

n=length(x);

figure(1)

plot(0,0,'')

hold on

h1=line( 'Color' ,[0 0 1], 'Marker' , '' , 'MarkerSize' ,40, 'EraseMode' , 'xor' );

h2=line(15,0,'MarkerFaceColor',[0 1 0],'Marker','h', 'MarkerSize' ,15, 'EraseMode' , 'xor');

plot(15,0,'')

line([15 15],[0 11],'LineWidth',2)

axis equal

axis([0 16 0 11])

title('猫追耗子动画演示')

for i=1:n-1

plot(x([i i+1],1),x([i i+1],2))

set(h1, 'xdata' ,x(i+1,1), 'ydata' ,x(i+1,2));

set(h2, 'xdata' ,15, 'ydata' ,20t(i+1));

drawnow; % 刷新屏幕

pause(0005)

f=getframe(gcf);

mov=addframe(mov,f);

end

hold off

mov=close(mov);

后面是子程序

function dx=cat_m(t,x)

a=20;b=40;c=15;

s=sqrt((c-x(1))^2+(at-x(2))^2);

dx=[b(c-x(1))/s;b(at-x(2))/s];

上次看到一个网友做的猫捉老鼠的实现,其实就是导d追踪问题

可以在editor里面进行调试运行。

写好代码以后,运行的话可以直接单击editor菜单里面的run。

调试的方法就多种多样了:

1、可以把先不想运行队部分加上注释,着重运行需要调试的部分。

2、用%%把代码分块,用run section分块运行。

3、在中间加上输出语句、监视中间的结果。

4、用breakpoints设置断点,在运行中间查看程序运行情况。

如图所示,设置两个全局变量,h2是标志,h3用来获得figure(2)的句柄,一旦按下button7,则h2变成1,并且d出figure(2)界面,最后一行代码最关键,设置figure(2)关闭时的函数语句,一旦关闭了figure(2),则置标志h2=0

1、一定要利用好M-file编辑器,因为会有一些着重标示的优化建议。

   例如,你在编辑器里输入以下代码:

      for k = 1:NumTrials

       r = rand;

       x(k) = runsim(r);

       end

       hist(x);

   它会用红色波浪线表示出来,提示你最好先预设x的值。

另外:

   最好在一个单独的文件夹里运行程序;

   写好程序代码的注释,利人利己;

   将常用的命令存下来,方便以后调用。

2、在运行循环的时候,一定要预设变量值!

可以用 cell 和zeros这两个矩阵命令,对变量进行预设。

例如,

a(1) = 1;

b(1) = 0;

for k = 2:8000

a(k) = 099803 a(k -1)-006279 b(k-1);

b(k) = 006279 a(k-1) + 099803 b(k-1);

end

,没有预设,大约耗费047秒;

a = zeros(1,8000); % Preallocation

b = zeros(1,8000);

a(1) = 1;

b(1) = 0;

for k = 2:8000

a(k) = 099803 a(k -1)-006279 b(k-1);

b(k) = 006279 a(k-1) + 099803 b(k-1);

end

有预设,大约耗费014秒!

以上就是关于求助Matlab大神! 如何让程序自动改变参数重复运行,并保存数据全部的内容,包括:求助Matlab大神! 如何让程序自动改变参数重复运行,并保存数据、运动目标检测matlab程序、matlab程序怎样调试和运行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9750469.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存