我的MATLAB程序点RUN运行后没任何反应。既不出图,WORKSPACE里面也没有任何矩阵量。

我的MATLAB程序点RUN运行后没任何反应。既不出图,workspace里面也没有任何矩阵量,也不报错。随便改个错误出来就会报错,workspace里面也有值了.运行其... 我的MATLAB程序点RUN运行后没任何反应。既不出图,workspace里面也没有任何矩阵量,也不报错。随便改个错误出来就会报错,workspace里面也有值了.运行其他程序也都正常,就是这个没任何反应。换到别人的电脑上运行也是一样。附程序:
clear;
clc;
A=[10.25,13.9,17.3,20.7,24.1,27.5,30.9,34.3];%A矩阵为8个阵元的平均半径;
c=5.6e6;%C为声速;
li=2;%ri为阵元宽度;
y0=75;%y0为预期聚焦深度;

Ti=zeros(1,8);
for n=1:8
Ti(1,n)=(sqrtm(A(1,n)^2+y0^2)-y0)/c;%延时Ti;
end
[x,y]=meshgrid(0:0.1:40,60:0.1:100);%声场范围,这里取X方向0~40mm,Y方向60~100mm;
z=zeros(401);
for m=1:400;
for n=1:400
for p=1:8
R0i=sqrtm(y0^2+A(1,p)^2);
Ri=sqrtm(y(m,n)^2+A(1,p)^2);
z0=quad('sin(x)',0,2*3.1415926);
%z0=SmartSimpson('A(1,p)*li*exp(-j*(w/c)*(Ri-R0i))/Ri',0,2*3.1415926);
z(m,n)=z(m,n)+z0;
% Pi=li*A(1,p)*exp((-j)*(x/c)*((sqrtm(y0^2+(0.1*(Bx-1bx))^2+A(1,p)^2-0.2*(BX-1)cosx)-R0i)/ Ri=sqrtm(y0^2+(0.1*(Bx-1))^2+A(1,p)^2-0.2*(BX-1)cosx)% Ri=sqrtm(y0^2+(0.1*(Bx-1))^2+A(1,p)^2-0.2*(BX-1)cosx)
end
end
end
mesh(x,y,z);
展开
 我来答
爆呆鸟
推荐于2018-05-10 · TA获得超过109个赞
知道小有建树答主
回答量:92
采纳率:0%
帮助的人:99.4万
展开全部
没有错。只是运算比较慢。可以在循环里加一个进度条(waitbar)就知道大概还要等多久了。
z0=quad('sin(x)',0,2*3.1415926);放在循环里,每次循环都算了一次数值积分,所以特别慢。

另外你的程序好像还有问题,z0在程序里数值根本就没有变,得到的图也明显不对头
clear;
clc;
A=[10.25,13.9,17.3,20.7,24.1,27.5,30.9,34.3];%A矩阵为8个阵元的平均半径;
c=5.6e6;%C为声速
li=2;%ri为阵元宽度;
y0=75;%y0为预期聚焦深度;

Ti=zeros(1,8);
for n=1:8
Ti(1,n)=(sqrtm(A(1,n)^2+y0^2)-y0)/c;%延时Ti;
end
[x,y]=meshgrid(0:0.1:40,60:0.1:100);%声场范围,这里取X方向0~40mm,Y方向60~100mm;
z=zeros(401);

for m=1:400;
waitbar(m/400);
for n=1:400
for p=1:8
R0i=sqrtm(y0^2+A(1,p)^2);
Ri=sqrtm(y(m,n)^2+A(1,p)^2);
z0=quad('sin(x)',0,2*3.1415926);
%z0=SmartSimpson('A(1,p)*li*exp(-j*(w/c)*(Ri-R0i))/Ri',0,2*3.1415926);
z(m,n)=z(m,n)+z0;
% Pi=li*A(1,p)*exp((-j)*(x/c)*((sqrtm(y0^2+(0.1*(Bx-1bx))^2+A(1,p)^2-0.2*(BX-1)cosx)-R0i)/ Ri=sqrtm(y0^2+(0.1*(Bx-1))^2+A(1,p)^2-0.2*(BX-1)cosx)% Ri=sqrtm(y0^2+(0.1*(Bx-1))^2+A(1,p)^2-0.2*(BX-1)cosx)
end
end
end
mesh(x,y,z);
kufemail
2012-03-25 · TA获得超过836个赞
知道小有建树答主
回答量:275
采纳率:50%
帮助的人:252万
展开全部
如果你看不到那个>>标识,同时左下角start旁边显示busy,同时你的CPU表示某一个线程被占用,你的程序就在跑。你的确需要耐心一点,我对我的工作站非常有信心,不过跑你这个程序还是非常耗时间的。我在用双至强@3.65GHz,跑你这个程序也很头疼。另外,你这个程序没有设计并行计算,所以只能调用系统的一个线程,如果你是多核心CPU,那么你看不到CPU占用率100%。

还得多说一句,这个程序有点慢的可以了,你试试看优化一下吧……
我对我的机器还是很有自信的,这个我都写了好几个留言了,你这个程序还没算完……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5ed4a32
2012-03-23 · TA获得超过623个赞
知道小有建树答主
回答量:461
采纳率:0%
帮助的人:434万
展开全部
不是没反应,是你这个程序计算时间太长,你看左下角“开始”旁边是不是有个“busy”,说明一直在跑
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式