Labview and Matlab for PT

Just a place to discuss with Matlab and Labview

ad

Exam6.1

第一題
自由落體:0~30s的時間內位置的高度的變化
>> t=(0:0.2:30);
>> height=freebody(t);
>> plot(t,height)
>> xlabel('time(s)');ylabel('height(cm)');
>> height
結果圖1 結果圖2

第二題
以半徑3和5並以圓心(0,0) and (10, 0) cm作圖
function drawcircles(r) % 主函數
% Draw circles with radii of r.
global MAXR i;
n=length(r);
MAXR=max(r);
hold on;
for i=1:n,
[X,Y]=circ(r(i));
plot(X,Y);
end
hold off;
axis equal;
end

function [x,y]=circ(rr) %次函數
% Calculate the points of a circle.
[xx,yy]=randxy;
theta=linspace(0,2*pi,60);
x=xx+rr*cos(theta);
y=yy+rr*sin(theta);
end

function [xx,yy]=randxy %次函數
global MAXR i
% locate the position of the center.
k=[0 10];l=[0 0];
xx=k(i);
yy=l(i);
end
作圖

第三題
以=3, b=5, 並且給予 y=[12 15 20] 然後以匿名函數作x²/a²+y²/b²
最後作圖在x=[3 4 5]的範圍下(應該是這樣吧,題意不是很懂)
a=3;b=5;
y=[12 15 20];
fplot(@(x) ((x.^2)./a^2+(y.^2)./b^2),[3 5])
結果圖

第四題
敘述檔為
Do=input('請輸入圓柱體的外半徑? ');
Di=input('請輸入圓柱體的內半徑? ');
height=input('請輸入圓柱體的高? ');
[a,b,c]=cylin(Do,Di,height);
fprintf('圓柱體的體積為%f,上表面積%f,側面面積%f\n',a,b,c)

呼叫function cylin
% function cylin %
function [volume,upper_face,side]=cylin(Do,Di,height);
volume=(Do./2-Di./2).^2*pi.*height; %體積
upper_face=pi*(Do./2-Di./2).^2; %上表面積
side=2*pi*(Do./2-Di./2).*height; %側面面積

結果在這

第五題
將程式改成呼叫外部的函數,並且設立global variable,即可將polyx移到原本的函數外面
而非原先的巢狀函數

function [rr_array]=nest_fun1(x,a)
%function to find sets of polynormials.
% a: set of constants, [A B C]
% x: variables in array
% Example: rr=nest_fun(2:10,[1 2 4;2 4 8])
n=size(a);
global A B C x
for i=1:n
A=a(i,1);B=a(i,2);C=a(i,3);
rr_array{1,i}=['A=',num2str(A),', B=',...
num2str(B),', C=',num2str(C)];
rr_array{2,i}=polyx(x);
end
end

function [r]=polyx(xx)
global A B C x
r=A.*x.^2 + B.*x +C;
end


結果在這

第六題

function pillar(Do,Di,height)
% Find the volume of a hollow pillar
% ro,ri:outside & inside diameters
if nargin<1
height=1;
Di=0;
Do=1;
volume=abs(Do.^2-Di.^2).*height*pi/4;
fprintf('體積為%f(預設高為%d內面積%d外面積%d)\n',volume,height,Di,Do);
end
if nargin<2 & nargin>0
height=1;
Di=0;
volume=abs(Do.^2-Di.^2).*height*pi/4;
fprintf('體積為%f(預設高為%d內面積%d)\n',volume,height,Di);
end
if nargin<3 & nargin>1
height=1;
volume=abs(Do.^2-Di.^2).*height*pi/4;
fprintf('體積為%f(預設高為%d)\n',volume,height);
end
if nargin==3
volume=abs(Do.^2-Di.^2).*height*pi/4;
fprintf('體積為%f\n',volume);
end


結果在這

0 意見: