matlab运行一直正忙,matlab一直显示正忙,没反应,求大神帮助

代码如下,运行一直处于正忙状态,求大神帮忙看看代码有什么问题:Q

%% 定义 (x,t) 平面上的网格点坐标

clear;clc;

dx=0.05;              % x 方向的步长

dy=0.05;

H=0.4;

L=0.4;% t 方向的步长

x=0:dx:0.4;             % 得到 x 的序列 (离散点 x 坐标)

y=0:dy:0.4;  % 得到 t 的序列 (离散点 t 坐标)

v=2;cp=1.01;tcw=22.1;hfg=2500;ms=v*1.293*0.3*0.3;mp=v*1.293*0.3*0.3;

% hs=54*v^0.7;hp=54*v^0.7;

hs=(0.023*(v/(15*10^(-6)))^0.8*0.7^0.3*0.026)/(2*0.4*0.005/(0.4+0.005))^0.2;hp=(0.023*(v/(15*10^(-6)))^0.8*0.7^0.3*0.026)/(2*0.4*0.005/(0.4+0.005))^0.2;

hms=hs/cp;hmp=hp/cp;

NTUS=hs*H/(cp*ms);

NTUms=hms*H/(ms);

NTUP=hp*L/(cp*mp);

NTUmp=hmp*L/(cp*mp);

%% 设置偏微分方程的初始条件, 边界条件

M=length(x)-1;

N=length(y)-1;

TP=ones(N+1,M+1);

TS=ones(N+1,M+1);

WS=ones(N+1,M+1);

WP=ones(N+1,M+1);

TW=ones(N+1,M+1);

W=ones(N+1,M+1);

E=ones(1,400);

TA=ones(1,400);

TP(:,1)=34;          % 设置初值条件

TS(1,:)=24;

WP(:,1)=0.0168;

WS(1,:)=0.0112;

%% 根据推导出的差分方程, 计算偏微分方程的数值解

tic

for k=1:N

tic

for j=1:M

TA(1)=15;

tic

for i=1:400

Tw=273.15+TA(i);

a=[-5800.22,1.3914993,-0.04864,0.000041764768,-0.000000014452093,6.5459673];

yw=a(1)/Tw+a(2)+a(3)*Tw+a(4)*Tw^2+a(5)*Tw^3+a(6)*log(Tw);

xw=exp(yw);

Aw=1;bw=Aw*xw;

W(k,j)=0.622*(bw/(101325-bw));

if WP(k,j)<=W(k,j)

while k>=2

TS(k,j)= TS(k-1,j)+dy*NTUS*(TW(k-1,j)-TS(k-1,j));

WS(k,j)= WS(k-1,j)+dy*NTUms*(W(k-1,j)-WS(k-1,j));

end

TW(k,j)=(hp*TP(k,j)+hs*TS(k,j)-(W(k,j)-WS(k,j))*hfg*hms)/(hs+hp-(W(k,j)-WS(k,j))*cp*hms);

E(i)=abs(TA(i)-TW(k,j));

if E(i)<=0.1

TW(k,j)=TA(i);

WP(k,j+1)=WP(k,j);

TP(k,j+1)= TP(k,j)+dy*NTUP*(TP(k,j)-TW(k,j));

break;

else

TA(i+1)=TA(i)+0.05;

end

%        TW(k,j)=(ms*hfg*NTUms*(W(k,j)-WS(k,j)+mp*cp*NTUS*TS(k,j)+mp*cp*NTUP*TP(k,j)))/(mp*cp*NTUS+mp*cp*NTUms*(W(k,j)-WS(k,j)));

else

while k>=2

TS(k,j)= TS(k-1,j)+dy*NTUS*(TW(k-1,j)-TS(k-1,j));

WS(k,j)= WS(k-1,j)+dy*NTUms*(W(k-1,j)-WS(k-1,j));

end

TW(k,j)=(hs*TS(k,j)-hfg*hms*(W(k,j)-WS(k,j))-hp*TP(k,j)+(hfg+cp*tcw)*hmp*(WP(k,j)-W(k,j)))/(hs-hp-(W(k,j)-WS(k,j))*hmp*cp);

E(i)=abs(TA(i)-TW(k,j));

if  E(i)<=0.1

TW(k,j)=TA(i);

TS(k+1,j)= TS(k,j)+dy*NTUS*(TW(k,j)-TS(k,j));

WS(k+1,j)= WS(k,j)+dy*NTUms*(W(k,j)-WS(k,j));

TP(k,j+1)= TP(k,j)+dx*NTUP*(TP(k,j)-TW(k,j));

WP(k,j+1)= WP(k,j)+dx*NTUmp*(WP(k,j)-W(k,j));

break;

else

TA(i+1)=TA(i)+0.05;

end

end

end

toc

end

toc

end

toc

%% 绘制偏微分方程的计算结果: (x, t, Phi) 的三维网格图

figure

set(gcf,'units','normalized','position',[0.2 0.2 0.6 0.6],'name','三维图');  % 设置 figure 窗口的位置和尺寸

[x,y]=meshgrid(x,y);   % 得到所有计算点的 x 坐标和 t 坐标

mesh(x,y,TS)          % 绘制 (x,t,Phi) 的三维网格图

xlabel('x')

ylabel('y')

zlabel('TS(x,y)')

title('扩散方程的数值模拟')

view(75,50)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!针对您的问题,我可以提供一些关于 Matlab 特征值提取的常用方法及其实现。 1. SIFT 特征提取法 SIFT(Scale-Invariant Feature Transform)是一种基于尺度空间的特征提取方法,可以对图像进行关键点检测和特征描述。在 Matlab 中,可以使用 vlfeat 工具箱实现 SIFT 特征提取。具体可参考以下代码: ``` % 安装 vlfeat 工具箱 run('vlfeat-0.9.21/toolbox/vl_setup'); % 读入图像 im = imread('image.jpg'); % 转换为单通道灰度图 im_gray = rgb2gray(im); % 提取 SIFT 特征 [f, d] = vl_sift(single(im_gray)); ``` 2. PCA 特征提取法 PCA(Principal Component Analysis)即主成分分析,是一种常用的特征提取方法。在 Matlab 中,可以使用 pca 函数实现 PCA 特征提取。具体可参考以下代码: ``` % 读入图像 im = imread('image.jpg'); % 转换为单通道灰度图 im_gray = rgb2gray(im); % 转换为行向量 im_vec = im_gray(:)'; % PCA 特征提取 [coeff, score, latent] = pca(im_vec); ``` 3. LBP 特征提取法 LBP(Local Binary Pattern)是一种局部纹理特征提取方法,可以对图像进行纹理特征分析。在 Matlab 中,可以使用 extractLBPFeatures 函数实现 LBP 特征提取。具体可参考以下代码: ``` % 读入图像 im = imread('image.jpg'); % 转换为单通道灰度图 im_gray = rgb2gray(im); % 提取 LBP 特征 features = extractLBPFeatures(im_gray); ``` 以上是几种常用的 Matlab 特征值提取方法,希望可以对您有所帮助。如果您有任何问题或疑问,欢迎随时向我提问!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值