stream3

stream3,函式,生成向量(u,v,w)的流線圖數據。(x,y,z)定義了向量(u,v,w)的坐標。(x,y,z)通常是通過調用meshgrid函式生成的格線數據。

函式簡介

函式功能:生成3-D流線圖數據。
語法格式:
XYZ = stream3(x,y,z,u,v,w,startx,starty,startz)
生成向量(u,v,w)的流線圖數據。(x,y,z)定義了向量(u,v,w)的坐標。(x,y,z)通常是通過調用meshgrid函式生成的格線數據。(startx,starty,startz)定義了流線的起點。這裡u、v、w都必須是行列維數相等的三維數組。x、y、z和u、v、w也必須是行列維數相等的。
XYZ = stream3(u,v,w,startx,starty,startz)
這種調用格式等價於以下:
>>[m,n,p] = size(u);
>>[x,y,z] = meshgrid(1:n,1:m,1:p);
>>XYZ = stream3(x,y,z,u,v,w,startx,starty,startz);
XYZ = stream3(...,options)
options指定繪製流線圖時的一些選項。
這樣生成流線圖數據後, 就可以使用streamline(XYZ)來繪製出流線圖。
相關函式:coneplot, stream2, streamline

程式示例

下面這個程式繪製了一個單位正電荷的三維電場線分布圖:
close all; clear; clc;
% 在二維平面上繪製一個正電荷的電場線圖。
k = 8.9875e+9; % 比例係數
e = 1.602e-19; % 帶電量
e_r = 2.8e-15; % 電荷的半徑
ke = k .* e; % k by e
% 指定區間: d=<x,y<=d,並生成格線數據
d = -e_r*40:e_r:e_r*40;
&#91;x, y, z&#93; = meshgrid(d, d, d);
% 計算電位
V = ke ./ sqrt(x.^2 + y.^2 + z.^2);
V_max = ke / e_r; % 正電荷的表面電勢最大,無窮遠處電勢為0
V(V==Inf) = V_max; V(V>V_max) = V_max;
% 求電勢的梯度,即電場強度
&#91;E_x, E_y, E_z&#93; = gradient(-V);
% 繪製電場線分布
t = -pi:2*pi/2:pi;
&#91;sx, sy, sz&#93; = meshgrid(t, t, t);
sx = e_r * sx;
sy = e_r * sy;
sz = e_r * sz;
hold on; grid on; view(3);
plot3(0, 0, 0, 'r+', 0, 0, 0, 'ro', 'MarkerSize', 10, ...
'MarkerEdgeColor', 'r', 'MarkerFaceColor', 'w');
% 下面這兩行代碼等效於streamline(x, y, z, E_x, E_y, E_z, sx, sy, sz)
XYZ = stream3(x, y, z, E_x, E_y, E_z, sx, sy, sz);
streamline(XYZ);
xlabel('X'); ylabel('Y'); zlabel('Z');
axis equal, axis off; hold off;

相關詞條

熱門詞條

聯絡我們