
先写这么多,待会儿再补充,吃饭去了,回来接着写。。
function [uf,vf] = sfn(u,v)%此函数为自定义的sfn函数,u,v为输入变量
uf、vf为输出变量
global e b k; %定义全局变量 e b k;
ny = size(u,1); %求出矩阵u的行的数目,赋给ny
nx = size(u,2); %求出矩阵u的列的数目,赋给nx;
uer = [u(:,1),u,u(:,nx)];
%构造一个矩阵uer,u(:,1)为矩阵u的第一列; u(:,nx) 为矩阵第最后一列,u就不解释了。
uec = [u(1,:);u;u(ny,:)];
%构造一个矩阵uec,u(1,:)为矩阵u的第一行;u(ny,:)为u最后一行
ul = uec(3:ny+2,:)+uec(1:ny,:)+uer(:,1:nx)+uer(:,3:nx+2)-4u;
%用矩阵uec的第三行到第(ny+2)行+uec的第一行到第ny行+uer的第一列到第nx列+uer的第三行到(nx+2)列-4u
u3 = uuu; %把u的三次方赋给u3
uf = (u-u3/3-v)/e + k^2ul; %这行不用解释吧,简单的矩阵运算。
vf = e(u+b-05v); %同上。。
程序2:
clc %清屏
global k b e %定义全局变量k b e
nsteps = 2000; %将2000赋给nsteps
nxy = 100; %100赋给nxy
u = 5ones(nxy,1)([1:nxy]-04nxy)/nxy;
%ones(nxy,1)是创建一个nxy1的矩阵,[1:nxy]是行向量[1 2 3 4 nxy]
v = 5(([1:nxy]-04nxy)')ones(1,nxy)/nxy; %同上
h = 004;
e = 01;
b = 067;
colormap hsv; % 创建一个hsv颜色映射表
set(0,'DefaultSurfaceEdgecolor','none'); %设置为缺省边缘颜色为none。
k=1;
for i=1:nsteps
[uf,vf] = sfn(u,v); %调用上面写的sfn函数
u = u+huf; %矩阵运算
v = v+hvf;
if mod(i,3) == 1 %如果i对3求余数等于1
pcolor(u); drawnow; %按u中元素着色,画图。。
end
end
改好的程序:
t=0:pi/20:2pi;
[x,y]=meshgrid(t);
subplot(2,2,1)
plot(sin(t),cos(t)),
axis equal
subplot(2,2,2)
z=sin(x)+cos(y);
plot(t,z),
axis([0,2pi,-2,2])
subplot(2,2,3)
z=sin(x)cos(y);
plot(t,z),
axis([0,2pi,-1,1])
subplot(2,2,4)
z=sin(x)^2-cos(y)^2;
plot(t,z),
axis([0,2pi,-1,1])
其中吧axis的调用都改成逗号隔开就行了,axis传入参数是一个4项的数组,分别是x轴最小值,最大值,y轴最小值,最大值
你的图还挺好看的^^
% 读取图像A
A = imread('ricepng');
% 读取图像B
B = imread('cameramantif');
%两图像相减
C=B-A;
%显示三幅图像
figure;
imshow(A)
figure;
imshow(B)
figure;
imshow(uint8(C));
是这样的,如果你再程序开始添加holdon这个的画,表示这之后的每一次作图都保留以前的图,这样就可以连续画图了
反之holdoff,表示打开这个之后,每次画图,删除以前的图,
以上就是关于求matlab高手解答程序,好的话再送200分全部的内容,包括:求matlab高手解答程序,好的话再送200分、求解matlab程序问题、在matlab中把两幅图像的亮度值相减的程序代码怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)