MATLAB中用哪一个命令画折线图
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 10:53:18
MATLAB中用哪一个命令画折线图
koch() 应该取得三个参数,如
koch(p, q, n)
其中 p 是起点的平面座标向量,例如 p=[0;0];,而 q 是起点的平面座标向量,例如 q=[1;0];.第三个参数 n 是一个无号整数 (0 或正整数),代表要「翘起」几个回合;所谓一个回合,是指将每一根线段都「翘起」一次.前面那四张图,就分别是 n 为 0, 1, 2 和 3 的效果.
koch() 的想法很巧妙:如果指定的「回合」是 0,就用 plot() 函式把线段画出来.否则就把输入的线段「翘起」成四根线段,把每一根线段送去下一回合 koch() 去做 (把回合数减一).程式如下:
function koch(p,q,n)
if (n==0)
plot([p(1);q(1)], [p(2);q(2)], 'LineWidth',4,'Color','red');
hold on;
else
c = q-p;
c = [-c(2); c(1)];
c = (p+q)/2 + c/sqrt(12); % 求出「向左侧翘起 1/3」的顶点座标向量 c
a = (2*p+q)/3; % 求出从 p 到 q 的 1/3 处端点座标向量 a
b = (p+2*q)/3; % 求出从 p 到 q 的 2/3 处端点座标向量 b
koch(p, a, n-1); % 对 pa 线段做下一回合
koch(a, c, n-1); % 对 ac 线段做下一回合
koch(c, b, n-1); % 对 cb 线段做下一回合
koch(b, q, n-1); % 对 bq 线段做下一回合
end
koch() 程式只有两个技术需要稍加解释.首先,plot() 的前两个参数只是要话 p 至 q 的线段而已,没什麼特别. plot() 的后四个参数是要 Matlab 用 4 point 粗的红色线条来画折线图.而 hold on 是让以前画的图保持在图形视窗里,否则新的 plot() 指令会自动清除留在图形视窗里面的任何旧图.
使用 koch() 需注意的是,p 和 q 必须是向量.譬如要说 p=[0;0]; 和 q=[1;0]; 而不是说 p=[0,0]; 和 q=[1,0];.其实很容易改写 koch() 来帮助使用者不受这个限制,留给读者当习题.
koch() 会打开 Matlab 的图形视窗,在里面画图.但是 koch() 执行之后的 hold 状态是 on,需自行将它关闭,以免以后画的所有图都叠在一起了.此外,koch() 也没有为我们处理座标边框,因此图形的比例不太对,这也需要在 koch() 执行之后再处理.以下是一组例子.
p=[0;0];
q=[1;0];
koch(p,q,2)
hold off
axis([0 1 -0.2 0.8])
axis square
axis off 这个是用MATLAB实现绘制Koch雪花图形,
你可以参考一下
koch(p, q, n)
其中 p 是起点的平面座标向量,例如 p=[0;0];,而 q 是起点的平面座标向量,例如 q=[1;0];.第三个参数 n 是一个无号整数 (0 或正整数),代表要「翘起」几个回合;所谓一个回合,是指将每一根线段都「翘起」一次.前面那四张图,就分别是 n 为 0, 1, 2 和 3 的效果.
koch() 的想法很巧妙:如果指定的「回合」是 0,就用 plot() 函式把线段画出来.否则就把输入的线段「翘起」成四根线段,把每一根线段送去下一回合 koch() 去做 (把回合数减一).程式如下:
function koch(p,q,n)
if (n==0)
plot([p(1);q(1)], [p(2);q(2)], 'LineWidth',4,'Color','red');
hold on;
else
c = q-p;
c = [-c(2); c(1)];
c = (p+q)/2 + c/sqrt(12); % 求出「向左侧翘起 1/3」的顶点座标向量 c
a = (2*p+q)/3; % 求出从 p 到 q 的 1/3 处端点座标向量 a
b = (p+2*q)/3; % 求出从 p 到 q 的 2/3 处端点座标向量 b
koch(p, a, n-1); % 对 pa 线段做下一回合
koch(a, c, n-1); % 对 ac 线段做下一回合
koch(c, b, n-1); % 对 cb 线段做下一回合
koch(b, q, n-1); % 对 bq 线段做下一回合
end
koch() 程式只有两个技术需要稍加解释.首先,plot() 的前两个参数只是要话 p 至 q 的线段而已,没什麼特别. plot() 的后四个参数是要 Matlab 用 4 point 粗的红色线条来画折线图.而 hold on 是让以前画的图保持在图形视窗里,否则新的 plot() 指令会自动清除留在图形视窗里面的任何旧图.
使用 koch() 需注意的是,p 和 q 必须是向量.譬如要说 p=[0;0]; 和 q=[1;0]; 而不是说 p=[0,0]; 和 q=[1,0];.其实很容易改写 koch() 来帮助使用者不受这个限制,留给读者当习题.
koch() 会打开 Matlab 的图形视窗,在里面画图.但是 koch() 执行之后的 hold 状态是 on,需自行将它关闭,以免以后画的所有图都叠在一起了.此外,koch() 也没有为我们处理座标边框,因此图形的比例不太对,这也需要在 koch() 执行之后再处理.以下是一组例子.
p=[0;0];
q=[1;0];
koch(p,q,2)
hold off
axis([0 1 -0.2 0.8])
axis square
axis off 这个是用MATLAB实现绘制Koch雪花图形,
你可以参考一下