星期五, 11月 17, 2006

work-7

<\pre>
第一題
Write a program to input the name, age,
sex and email address of a student and store the data as a structural format.
程式碼
clear all
close all
clc
n=1;
m=0;
while n;
m=n+m;
disp('這是一個建個人檔案的資料庫')
a=input('請輸入你的名字\n','s');
b=input('請輸入你的年齡\n');
c=input('請輸入你的性別\n','s');
d=input('請輸入你的電址郵件地址\n','s');
student(m)=struct('name',{a},'age',{b},'sex',{c},'mail',{d});

e=input('還要建下一筆嗎,請輸入n or y\n','s');
if e=='y';
continue
else
break
end
end

fprintf('你總共建了%d筆資料',m)
o=input('你想看你所建的資料嗎 y or n\n','s');
if o=='y'
for bb=1:m
fprintf('你所建的第%d筆資料',bb)
student(bb)
end
else
disp('bye')
end

% 結果 %
這是一個建個人檔案的資料庫
請輸入你的名字
jen
請輸入你的年齡
18
請輸入你的性別
man
請輸入你的電址郵件地址
jen@nt.com
還要建下一筆嗎,請輸入n or y
y
這是一個建個人檔案的資料庫
請輸入你的名字
王大毛
請輸入你的年齡
24
請輸入你的性別

請輸入你的電址郵件地址
mm@tu.com
還要建下一筆嗎,請輸入n or y
n
你總共建了2筆資料你想看你所建的資料嗎 y or n
y
你所建的第1筆資料
ans =

name: 'jen'
age: 18
sex: 'man'
mail: 'jen@nt.com'

你所建的第2筆資料
ans =

name: '王大毛'
age: 24
sex: '男'
mail: 'mm@tu.com'

第二題
Use the "menu" and "switch" commands incorporated in a program
that enables a selection of Apple, Microsoft, IBM, Acer and Asus computers.
% 程式碼 %
close all
clear all
clc
k=menu('請選擇你想看的品牌口號:','Apple','Microsoft','IBM','Acer','Asus');
switch k;
case 1
disp('Apple的口號 "不同凡想"(Think Different)')
case 2
disp('Microsoft沒有口號,地下版口號:本程式執行無效,請洽系統管理員')
case 3
disp('IBM的口號 "隨需而變"(A Business on Demand)')
case 4
disp('Acer的口號 "不斷創新,因為用心"')
case 5
disp('Asus的口號"華碩品質,堅若磐石"')
end
% 結果 %

Microsoft沒有口號,地下版口號:本程式執行無效,請洽系統管理員

第四題
Write a program to retrieve data from an excell sheet.

程式碼
clear all
close all
clc
[a,b,c]=xlsread('so.xls') % 讀取excell
結果
原始圖

a =
90 85 90
86 98 95
78 75 78
b =
'name' '國文' '英文' '數學'
'Jan' '' '' ''
'Peter' '' '' ''
'Eba' '' '' ''
c =
'name' '國文' '英文' '數學'
'Jan' [ 90] [ 85] [ 90]
'Peter' [ 86] [ 98] [ 95]
'Eba' [ 78] [ 75] [ 78]


% 發現有錯從command window直接修改 %
c1={'Jan',80,75,60;} % 改 jan的分數
c1 =
'Jan' [80] [75] [60]


status=xlswrite('so.xls',c1,'a2:d2')

status = 1 % 表存成功
修改後的圖

work6


第一題
Run the function "freebody " in section 6.2
finding the height of the ball in terms of elapsed time
in an interval of 0 to 30 seconds with an increment of 0.2 second.
% 第一題程式碼 %
clc
clear all
close all
time=input('這是一個自由落体的公式,請輸入時間\n');
free(time); %呼叫free function%

% free function %

function y=free(time);
a=length(time);
for n=1:a;
y=1/2*980*time(n).*time(n);
fprintf('當第%0.1f秒時,落下%4.3f公尺\n',time(n),y/100);
end

% 第一題執行結果 %
這是一個自由落体的公式,請輸入時間
[0:0.2:30]
當第0.0秒時,落下0.000公尺 當第0.2秒時,落下0.196公尺 當第0.4秒時,落下0.784公尺
當第0.6秒時,落下1.764公尺 當第0.8秒時,落下3.136公尺 當第1.0秒時,落下4.900公尺
當第1.2秒時,落下7.056公尺 當第1.4秒時,落下9.604公尺 當第1.6秒時,落下12.544公尺
當第1.8秒時,落下15.876公尺 當第2.0秒時,落下19.600公尺 當第2.2秒時,落下23.716公尺
當第2.4秒時,落下28.224公尺 當第2.6秒時,落下33.124公尺 當第2.8秒時,落下38.416公尺
當第3.0秒時,落下44.100公尺 當第3.2秒時,落下50.176公尺 當第3.4秒時,落下56.644公尺
當第3.6秒時,落下63.504公尺 當第3.8秒時,落下70.756公尺 當第4.0秒時,落下78.400公尺
當第4.2秒時,落下86.436公尺 當第4.4秒時,落下94.864公尺 當第4.6秒時,落下103.684公尺
當第4.8秒時,落下112.896公尺 當第5.0秒時,落下122.500公尺 當第5.2秒時,落下132.496公尺
當第5.4秒時,落下142.884公尺 當第5.6秒時,落下153.664公尺 當第5.8秒時,落下164.836公尺
當第6.0秒時,落下176.400公尺 當第6.2秒時,落下188.356公尺 當第6.4秒時,落下200.704公尺
當第6.6秒時,落下213.444公尺 當第6.8秒時,落下226.576公尺 當第7.0秒時,落下240.100公尺
當第7.2秒時,落下254.016公尺 當第7.4秒時,落下268.324公尺 當第7.6秒時,落下283.024公尺
當第7.8秒時,落下298.116公尺 當第8.0秒時,落下313.600公尺 當第8.2秒時,落下329.476公尺
當第8.4秒時,落下345.744公尺 當第8.6秒時,落下362.404公尺 當第8.8秒時,落下379.456公尺
當第9.0秒時,落下396.900公尺 當第9.2秒時,落下414.736公尺 當第9.4秒時,落下432.964公尺
當第9.6秒時,落下451.584公尺 當第9.8秒時,落下470.596公尺 當第10.0秒時,落下490.000公尺
當第10.2秒時,落下509.796公尺 當第10.4秒時,落下529.984公尺 當第10.6秒時,落下550.564公尺
當第10.8秒時,落下571.536公尺 當第11.0秒時,落下592.900公尺 當第11.2秒時,落下614.656公尺
當第11.4秒時,落下636.804公尺 當第11.6秒時,落下659.344公尺 當第11.8秒時,落下682.276公尺
當第12.0秒時,落下705.600公尺 當第12.2秒時,落下729.316公尺 當第12.4秒時,落下753.424公尺
當第12.6秒時,落下777.924公尺 當第12.8秒時,落下802.816公尺 當第13.0秒時,落下828.100公尺
當第13.2秒時,落下853.776公尺 當第13.4秒時,落下879.844公尺 當第13.6秒時,落下906.304公尺
當第13.8秒時,落下933.156公尺 當第14.0秒時,落下960.400公尺 當第14.2秒時,落下988.036公尺
當第14.4秒時,落下1016.064公尺 當第14.6秒時,落下1044.484公尺 當第14.8秒時,落下1073.296公尺
當第15.0秒時,落下1102.500公尺 當第15.2秒時,落下1132.096公尺 當第15.4秒時,落下1162.084公尺
當第15.6秒時,落下1192.464公尺 當第15.8秒時,落下1223.236公尺 當第16.0秒時,落下1254.400公尺
當第16.2秒時,落下1285.956公尺 當第16.4秒時,落下1317.904公尺 當第16.6秒時,落下1350.244公尺
當第16.8秒時,落下1382.976公尺 當第17.0秒時,落下1416.100公尺 當第17.2秒時,落下1449.616公尺
當第17.4秒時,落下1483.524公尺 當第17.6秒時,落下1517.824公尺 當第17.8秒時,落下1552.516公尺
當第18.0秒時,落下1587.600公尺 當第18.2秒時,落下1623.076公尺 當第18.4秒時,落下1658.944公尺
當第18.6秒時,落下1695.204公尺 當第18.8秒時,落下1731.856公尺 當第19.0秒時,落下1768.900公尺
當第19.2秒時,落下1806.336公尺 當第19.4秒時,落下1844.164公尺 當第19.6秒時,落下1882.384公尺
當第19.8秒時,落下1920.996公尺 當第20.0秒時,落下1960.000公尺 當第20.2秒時,落下1999.396公尺
當第20.4秒時,落下2039.184公尺 當第20.6秒時,落下2079.364公尺 當第20.8秒時,落下2119.936公尺
當第21.0秒時,落下2160.900公尺 當第21.2秒時,落下2202.256公尺 當第21.4秒時,落下2244.004公尺
當第21.6秒時,落下2286.144公尺 當第21.8秒時,落下2328.676公尺 當第22.0秒時,落下2371.600公尺
當第22.2秒時,落下2414.916公尺 當第22.4秒時,落下2458.624公尺 當第22.6秒時,落下2502.724公尺
當第22.8秒時,落下2547.216公尺 當第23.0秒時,落下2592.100公尺 當第23.2秒時,落下2637.376公尺
當第23.4秒時,落下2683.044公尺 當第23.6秒時,落下2729.104公尺 當第23.8秒時,落下2775.556公尺
當第24.0秒時,落下2822.400公尺 當第24.2秒時,落下2869.636公尺 當第24.4秒時,落下2917.264公尺
當第24.6秒時,落下2965.284公尺 當第24.8秒時,落下3013.696公尺 當第25.0秒時,落下3062.500公尺
當第25.2秒時,落下3111.696公尺 當第25.4秒時,落下3161.284公尺 當第25.6秒時,落下3211.264公尺
當第25.8秒時,落下3261.636公尺 當第26.0秒時,落下3312.400公尺 當第26.2秒時,落下3363.556公尺
當第26.4秒時,落下3415.104公尺 當第26.6秒時,落下3467.044公尺 當第26.8秒時,落下3519.376公尺
當第27.0秒時,落下3572.100公尺 當第27.2秒時,落下3625.216公尺 當第27.4秒時,落下3678.724公尺
當第27.6秒時,落下3732.624公尺 當第27.8秒時,落下3786.916公尺 當第28.0秒時,落下3841.600公尺
當第28.2秒時,落下3896.676公尺 當第28.4秒時,落下3952.144公尺 當第28.6秒時,落下4008.004公尺
當第28.8秒時,落下4064.256公尺 當第29.0秒時,落下4120.900公尺 當第29.2秒時,落下4177.936公尺
當第29.4秒時,落下4235.364公尺 當第29.6秒時,落下4293.184公尺 當第29.8秒時,落下4351.396公尺
當第30.0秒時,落下4410.000公尺
>>
第二題
Draw two circles with radii of 3 and 5 cm each and their centers located at (0,0)and(10,0)cm
% 第二題程式碼 %
function drawcircles(r) % 主函數
global I
n=length(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 I
A=[0 10]
B=[0 0]
xx=A(I)
yy=B(I)
end
% 第二題執行結果 %


第三題
Using an implicit function(匿名函數)to find the result for the formula y=x²/a²+y²/b²,
in which a=3, b=5, and y=[12 15 20] for x=[3 4 5]. Draw the graphs.

% 第三題程式碼 %

a=3;b=5;y=[12 15 20];fplot(@(x) ((x.^2)./a^2+(y.^2)./b^2),[3 5])

% 第三題結果 %


第四題
A plate ring has a thickness of 2 cm,
with inner and outer diameters of 3 cm and 5 cm,
respectively.Using the above parameters as inputs of a function
to find the area of its upper face and side wall as well as the volume.

% 第四題程式碼 %
clc
clear all
close all
D=input('這是求圓柱體積和表面積的程式,請輸入外徑\n');
d=input('這是求圓柱體積和表面積的程式,請輸入內徑\n');
h=input('這是求圓柱體積和表面積的程式,請輸入圓柱高\n');
cr(D,d,h); % 呼叫function cr %

% function cr %
function [v,s]=cr(D,d,h);
v=(D/2-d/2)^2*pi*h %體積
s=v*2+(D/2-d/2)^2*pi*2 %表面積

% 第四題結果 %

這是求圓柱體積和表面積的程式,請輸入外徑
5
這是求圓柱體積和表面積的程式,請輸入內徑
3
這是求圓柱體積和表面積的程式,請輸入圓柱高
2
v =
6.2832
s =
18.8496

第五題
Rewrite the function "nest_fun" in the text by moving
the nested function polyx(xx) outside of the main function
so that the function will still produce the same results.

% 第五題程式碼 %
function [rr_array]=nest_fun1(x,a)% 主程式
n=size(a);
global A;global B;global C;;
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;global B;global C;;
r=A.*xx.^2+B.*xx+C;
end % 次程式結束

% 第五題結果 %

rr=nest_fun1(2:10,[1 2 4;2 4 8]) %在command window 下執行

rr =
'A=1, B=2, C=4' 'A=2, B=4, C=8'
[1x9 double] [1x9 double]


celldisp(rr) %在command window下執行

rr{1,1} =
A=1, B=2, C=4

rr{2,1} =
12 19 28 39 52 67 84 103 124

rr{1,2} =
A=2, B=4, C=8

rr{2,2} =
24 38 56 78 104 134 168 206 248

第六題
rewrite the function "pillar" to make sure
it will run smoothly even the inputs are not sufficient for the function to run.

% 第六題程式碼 %
function [volume]=pillar(Do,Di,height)
if nargin<1 % 當你什麼都沒輸入時會執行這個
height=1;
Di=0;
Do=1;
end
if nargin<2 % 當你只輸入一個值時會執行這個
Di=0;
height=1;
end
if nargin<3 % 當你只輸入二個值時會執行這個
height=1;
end
volume=abs(Do.^2-Di.^2).*height*pi/4;

星期二, 11月 14, 2006

I dare you

Hello, let me introduce you to
The characters in the show
One says yes, one says no
Decide - which voice in your head you can keep alive

Even in madness, I know you still believe
Paint me your canvas so I become
What you could never be

I dare you to tell me to walk through the fire
wear my soul and call me a liar
I dare you to tell me to walk through the fire
I dare you to tell me
I dare you to

Hello, are you still chasing
The memories in shadows
Some stay young, some grow old
Come alive, there are thoughts unclear
You can never hide

Even in madness, I know you still believe
Paint me your canvas so I become
What you could never be

I dare you to tell me to walk through the fire
wear my soul and call me a liar
I dare you to tell me to walk through the fire
I dare you to tell me
I dare you to

Hello
Hello...
I dare you to tell me to walk through the fire
Brand my soul and call me a liar
I dare you to tell me to walk through the fire
I dare you to tell me
I dare you to
Hello...
Hello...
I dare you to tell me
I dare you to
I dare you to tell me
I dare you to

Friday Night Lights

Be My Escape


"Be My Escape"

I’ve given up on giving up slowly, I’m blending in so
You won’t even know me apart from this whole world that shares my fate
This one last bullet you mention is my one last shot at redemption
because I know to live you must give your life away
And I’ve been housing all this doubt and insecurity and
I’ve been locked inside that house all the while You hold the key
And I’ve been dying to get out and that might be the death of me
And even though, there’s no way in knowing where to go, promise I’m going because
I gotta get outta here
I’m stuck inside this rut that I fell into by mistake
I gotta get outta here
And I’m begging You, I’m begging You, I’m begging You to be my escape.

I’m giving up on doing this alone now
Cause I’ve failed and I’m ready to be shown how
He’s told me the way and I’m trying to get there
And this life sentence that I’m serving
I admit that I’m every bit deserving
But the beauty of grace is that it makes life not fair

Cause I’ve been housing all this doubt and insecurity and
I’ve been locked inside that house all the while You hold the key
And I’ve been dying to get out and that might be the death of me
And even though, there’s no way in knowing where to go, promise I’m going because
I gotta get outta here
Cause I’m afraid that this complacency is something I can’t shake
I gotta get outta here
And I’m begging You, I’m begging You, I’m begging You to be my escape.

I am a hostage to my own humanity
Self detained and forced to live in this mess I’ve made
And all I’m asking is for You to do what You can with me
But I can’t ask You to give what You already gave

Cause I’ve been housing all this doubt and insecurity and
I’ve been locked inside that house all the while you hold the key
And I’ve been dying to get out and that might be the death of me
And even though, there’s no way in knowing where to go, promise I’m going because
I’ve gotta get outta here
I’m stuck inside this rut that I fell into by mistake
I’ve gotta get outta here
And I’m begging You, I’m begging You, I’m begging
You to be my escape.

I fought You for so long
I should have let You in
Oh how we regret those things we do
And all I was trying to do was save my own skin
But so were You

So were You

work-5

第一題Create a 3X3X2 matrix A which contains a matrix of magic(3)
and another rand(3,3)*10.

程式碼
a=cat(3,magic(3),rand(3,3)*10)
結果
a(:,:,1) =
8 1 6
3 5 7
4 9 2

a(:,:,2) =
8.4622 6.7214 6.8128
5.2515 8.3812 3.7948
2.0265 0.1964 8.3180


第二題 Assume that matrices A=[45 89 99; 12 34 55], B=[15 25 45; 65 50 30].
Find matrices that join A & B both in vertical and horizontal directions.
Also, find a two-page matrix with A & B stored in separate pages.
Use commands horizcat and verticat to check the results with those from above


程式碼
(1)

A=[45 89 99;12 34 55];
B=[15 25 45;65 50 30];

disp('用[A;B]組合成vertical')
v=[A;B] % 組合成vertical
disp('用cat(1,A,B)組成的vertica')
V=cat(1,A,B) % 利用cat funcation 組成的vertical

disp('證明')
v==V % 證明是否一樣

結果
(1)
用[A;B]組合成vertical
v =
45 89 99
12 34 55
15 25 45
65 50 30
用cat(1,A,B)組成的vertica
V =
45 89 99
12 34 55
15 25 45
65 50 30
證明
ans =
1 1 1
1 1 1
1 1 1
1 1 1
所以是用這二種方式結果是一樣的

程式碼
(2)

disp('用[A B]組合成horizontal')
h=[A B] % 組合成horizontal
disp('cat(2,A,B)')
H=cat(2,A,B) % 利用cat funcation 組成的horizontal

disp('證明')
H==h % 證明是否一樣
結果(2)
用[A B]組合成horizontal
h =
45 89 99 15 25 45
12 34 55 65 50 30

cat(2,A,B)
H =
45 89 99 15 25 45
12 34 55 65 50 30

證明
ans =
1 1 1 1 1 1
1 1 1 1 1 1
所以是用這二種方式結果是一樣的

程式碼
(3)
disp('p(:,:,1)=A')
p(:,:,1)=A; % 組合成二頁,第一頁
disp('p(:,:,2)=B')
p(:,:,2)=B; % 組合成二頁,第二頁
p
disp('cat(3,A,B)')
P=cat(3,A,B) % 利用cat funcation 組成頁

disp('證明')
p==P% 證明是否一樣

結果(3)
p(:,:,1)=A
p(:,:,2)=B

p(:,:,1) =
45 89 99
12 34 55

p(:,:,2) =
15 25 45
65 50 30

cat(3,A,B)
P(:,:,1) =
45 89 99
12 34 55

P(:,:,2) =
15 25 45
65 50 30

證明
ans(:,:,1) =
1 1 1
1 1 1
ans(:,:,2) =
1 1 1
1 1 1
所以是用這二種方式結果是一樣的

第三題Find a matrix M which contains A as the first and third pages
and B the second and fourth
pages
程式碼
close all
clear all
clc
A=[45 89 99;12 34 55];
B=[15 25 45;65 50 30];
M(:,:,1)=A;% 第一頁
M(:,:,3)=A;% 第三頁
M(:,:,2)=B;% 第二頁
M(:,:,4)=B;% 第四頁
M
cat(3,A,B,A,B)%用cat組成四頁
結果
M(:,:,1) =
45 89 99
12 34 55
M(:,:,2) =
15 25 45
65 50 30
M(:,:,3) =
45 89 99
12 34 55
M(:,:,4) =
15 25 45
65 50 30

ans(:,:,1) =
45 89 99
12 34 55
ans(:,:,2) =
15 25 45
65 50 30
ans(:,:,3) =
45 89 99
12 34 55
ans(:,:,4) =
15 25 45
65 50 30
由止可知上面二種方法都可以
>>


第四題Construct a 2X2 cell array
that contains 'Eric' [90 100]; 'Peter' [35 60]; 'Jan' [77 67]

程式碼
A(1,1)={'name'};%自己加的因為是2X2所以把空格給填滿
A(1,2)={'score'};%自己加的
A(2,1)={{'Eric';'Jan';'Peter' }};
A(2,2)={[90 100;35 60;77 67]};
celldisp(A)
cellplot(A)

結果
A{1,1} =
name
A{2,1}{1} =
Eric
A{2,1}{2} =
Jan
A{2,1}{3} =
Peter
A{1,2} =
score
A{2,2} =
90 100
35 60
77 67


第五題Construct a structural Array that contains the following data:
Name: 'Philip', 'Peter','Roberts', 'Roe'
Age: 35, 45, 55, 60
Salary: 50,000 40,000 80,000 120,000


程式碼
DATA=struct('Name',{'philip','Peter','Roberts','Roe'},'Age',{35,45,55,60},'Salary',{50000,40000,80000,120000})
for N=1:4 %show 出內容
DATA(N)
end
結果
DATA =
1x4 struct array with fields:
Name
Age
Salary
ans =
Name: 'philip'
Age: 35
Salary: 50000
ans =
Name: 'Peter'
Age: 45
Salary: 40000
ans =
Name: 'Roberts'
Age: 55
Salary: 80000
ans =
Name: 'Roe'
Age: 60
Salary: 120000

花蓮的海豚

花蓮的海豚