MATLAB编程快速入门

简介: MATLAB编程快速入门

1.3.1矩阵的输入与生成

20170306175659340.png


20170306175753180.png

1.3.2矩阵的运算

20170306175834963.png

20170306175907935.png

20170306175548574.png

demo1 克莱因壶*(3D可视化)*

n = 12;

a = .2; % 小管直径

c = .6; % 球的直径

t1 = pi/4 : pi/n : 5*pi/4; % 沿管参数

t2 = 5*pi/4 : pi/n : 9*pi/4; % 小管周围的角度

u = pi/2 : pi/n : 5*pi/2;

[X,Z1] = meshgrid(t1,u);%meshgrid函数生成绘制3D图形所需的网格

%数据

[Y,Z2] = meshgrid(t2,u);


% 把柄

len = sqrt(sin(X).^2 + cos(2*X).^2);

x1 = c*ones(size(X)).*(cos(X).*sin(X) …

- 0.5*ones(size(X))+a*sin(Z1).*sin(X)./len);

y1 = a*c*cos(Z1).*ones(size(X));

z1 = ones(size(X)).*cos(X) + a*c*sin(Z1).*cos(2*X)./len;

handleHndl=surf(x1,y1,z1,X);%用surf函数画出来的图 叫surf 三维着

%色表面图、三维表面图、表面图

set(handleHndl,’EdgeColor’,[.5 .5 .5]);

hold on;


% 壶的球体部分

r = sin(Y) .* cos(Y) - (a + 1/2) * ones(size(Y));

x2 = c * sin(Z2) .* r;

y2 = - c * cos(Z2) .* r;

z2 = ones(size(Y)) .* cos(Y);

bulbHndl=surf(x2,y2,z2,Y);

set(bulbHndl,’EdgeColor’,[.5 .5 .5])


colormap(hsv);%colormap的函数用来设定和获取当前色图。

axis vis3d %axis函数用来设置坐标系

view(-37,30);

axis off%关掉坐标系

light(‘Position’,[2 -4 5])%

light

hold off

%%%light(‘Color’,选项一,’Style’,选项二,’Position’,选项三)

%选项一表示光的颜色,取RGB三元组或相应的颜色字符。选项二可取%为’infinite’和’local’两个值,分别表示无穷远光和近光。选项三去三维坐%标点组成的向量形式[x,y,z]。

得到球体与把柄的组合图:


20170309182124345.png

%遮阳技术

c = X;

[row col] = size(c);

c(1:floor(row/2),:) = NaN*ones(floor(row/2),col);

set(handleHndl,’CData’,c);


c = Y;

[row col] = size(c);

c(1:floor(row/2),:) = NaN*ones(floor(row/2),col);

set(bulbHndl,’CData’,c);

set([handleHndl bulbHndl],’FaceAlpha’,1);

利用遮阳技术得到的克莱因壶一半图:

20170309182244815.png

shading faceted;%阴影面

set(handleHndl,’CData’,X);

set(bulbHndl,’CData’,Y);

set([handleHndl bulbHndl], …

‘EdgeColor’,[.5 .5 .5], …

‘FaceAlpha’,.5);

得到一个透明壶:


20170309182333488.png


demo2**(主要是球面谐波的应用)**

% 定义常量

degree = 6;

order = 1;


% 创建网格

delta = pi/40;

theta = 0 : delta : pi; %高度

phi = 0 : 2*delta : 2*pi; %方向角

[phi,theta] = meshgrid(phi,theta);


%计算谐波

Ymn = legendre(degree,cos(theta(:,1)));

Ymn = Ymn(order+1,:)’;

yy = Ymn;

for kk = 2: size(theta,1)

yy = [yy Ymn];

end;

yy = yy.*cos(order*phi);


order = max(max(abs(yy)));

rho = 5 + 2*yy/order;


%应用球坐标方程

r = rho.*sin(theta);

x = r.*cos(phi); % 球坐标方程

y = r.*sin(phi);

z = rho.*cos(theta);


% 绘制曲面

clf

surf(x,y,z)

light

lighting phong

axis tight equal off

view(40,30)

camzoom(1.5)

最终效果图如下:



20170309183159203.png

相关文章
|
30天前
|
机器学习/深度学习 算法 数据库
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
|
30天前
|
索引
matlab快速入门(读取数据并绘制散点图和拉格朗日插值
matlab快速入门(读取数据并绘制散点图和拉格朗日插值
37 0
|
10月前
|
移动开发 关系型数据库
MATLAB快速入门(四):绘图
MATLAB快速入门(四):绘图
60 0
|
9月前
|
存储 算法 索引
第4章 MATLAB编程基础——4.7 MATLAB程序的调试
第4章 MATLAB编程基础——4.7 MATLAB程序的调试
|
9月前
第4章 MATLAB编程基础——4.6 M文件中变量的检测与传递
第4章 MATLAB编程基础——4.6 M文件中变量的检测与传递
|
9月前
|
自然语言处理 算法
第4章 MATLAB编程基础——4.5 脚本与函数(2)
第4章 MATLAB编程基础——4.5 脚本与函数(2)
|
9月前
|
自然语言处理
第4章 MATLAB编程基础——4.5 脚本与函数(1)
第4章 MATLAB编程基础——4.5 脚本与函数(1)
|
9月前
第4章 MATLAB编程基础——4.4 控制程序流的其他常用指令
第4章 MATLAB编程基础——4.4 控制程序流的其他常用指令
|
9月前
|
自然语言处理 算法
第4章 MATLAB编程基础——4.3 MATLAB的控制流(2)
第4章 MATLAB编程基础——4.3 MATLAB的控制流(2)
|
9月前
|
机器学习/深度学习 算法
第4章 MATLAB编程基础——4.3 MATLAB的控制流(1)
第4章 MATLAB编程基础——4.3 MATLAB的控制流(1)

热门文章

最新文章