用M文件搞MATLAB GUI界面的时候,点击按钮,用其回调函数执行计算之后,如何释放内存?

比如,第一次输入变量使得x=2:16;点击“计算”按钮,执行下列语句:fori=1:length(x)y(i)=fun(x(i));end输出y为有15个元素的数组,点击... 比如,第一次输入变量使得x=2:16;
点击“计算”按钮,执行下列语句:
for i=1:length(x)
y(i)=fun(x(i));
end
输出y为有15个元素的数组,点击按钮,调用回调函数画图plot(x,y);
第二次使得x=2:15;同样
点击"计算"按钮,执行
for i=1:length(x)
y(i)=fun(x(i));
end
但是输出的y仍有15个元素,而x有14个元素,点击按钮调用回调函数画图plot(x,y)就会提示Vectors must be the same lengths.而无法画图。

求高手解决这个问题。
展开
 我来答
fisher_man1990
2013-04-15 · TA获得超过1231个赞
知道小有建树答主
回答量:217
采纳率:100%
帮助的人:190万
展开全部
有个解决方案就是 在按钮的callback函数中,初始化y;
比如
y=0;
for i=1:length(x)
y(i)=fun(x(i));
end
plot(x,y)
这样的话 就不会出现你所说的问题

PS:当然 matlab 是有自己释放内存的函数的 在这里给你一个
for i=1:length(x)
y(i)=fun(x(i));
end
plot(x,y)
clear y %%删除y,并释放y中的数据
百度网友65f4a86
2013-04-15 · TA获得超过486个赞
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:109万
展开全部
在退出的时候加上这几句就行了。
clc;
clear all;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
k打酱油k
2013-04-15 · TA获得超过1397个赞
知道小有建树答主
回答量:266
采纳率:66%
帮助的人:332万
展开全部
你检查下x是公共变量还是局域变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式