10/05/2006

Problem #2 吳堉光

%%%%%%%%%%%%%%
% Question 1 %
%%%%%%%%%%%%%%
%題旨:將體溫矩陣轉換成攝氏並以38C作為判斷體溫是否過高的布林陣列

%分析與程式流程:
%首先將以華式為單位的B轉換為以攝氏為單位的C
%再將矩陣C以攝氏38度為判斷準則,利用">"作為判斷並且存以陣列D
%程式內容
clear all
B=[98 100 102 104 98.4 98.2 98.5 101 102 99.5];
C=(B-32)*5/9;
Q1_D=(C>38)


%%%%%%%%%%%%%%
% Question 2 %
%%%%%%%%%%%%%%
%題旨:矩陣的各個元素的比較以及element之間的運算

%分析與程式流程:
%先定義出兩個變數分別為A和B
%進行矩陣的比較及運算
%程式內容
clear all
A=[ -10 8 6 4 -5 20];
B=[2 8 5 10 -6 3];
Q2_D_a=(A>B)
Q2_D_b=(A>5)
Q2_D_c=(A+B)


%%%%%%%%%%%%%%
% Question 3 %
%%%%%%%%%%%%%%
%題旨:矩陣的基本運算

%分析與程式流程:
%先定義出兩個變數分別為x和y
%進行矩陣的運算
%程式內容
clear all
x=[10 20 30];
y=[1 4 6];
Q3_a=3*x+y
Q3_b=5*y./x
Q3_b_1=5*y/x
Q3_c=4*x*2.*y
Q3_d=sin(x).*cos(y)
Q3_e=5*x.*sin(2*y)

%%%%%%%%%%%%%%
% Question 4 %
%%%%%%%%%%%%%%
%題旨:利用矩陣的方式求出電阻的串聯並聯

%分析與程式流程:
%先定義R的電阻形成的矩陣
%以sum函數求出矩陣內的總和以並聯公式求出並聯電阻
%程式內容
clear all
R=[10 30 200 400];
Q4_R_s=sum(R)
Q4_R_p=1/(sum(1./R))


%%%%%%%%%%%%%%
% Question 5 %
%%%%%%%%%%%%%%
%題旨:矩陣A是一個1x24的列矩陣,將矩陣A利用reshape指令分別變化成
%矩陣B(3x8) 矩陣C(6x4) 矩陣D(2x12)

%分析與程式流程:
%矩陣A=1:24 為一從1遞增到24的1x24矩陣
%利用reshape(A,m,n)將矩陣A以排列磁磚的方式排列成變化成m x n的陣列
%程式內容
clear all
A=linspace(1,24,24);
Q5_B=reshape(A,3,8)
Q5_C=reshape(A,6,4)
Q5_D=reshape(A,2,12)

執行結果:
Q1_D =

0 0 1 1 0 0 0 1 1 0

討論:
直接比較比起利用for迴圈一一比較較為快速,也可以利用find函數來找出其index


Q2_D_a =

0 0 1 0 1 1


Q2_D_b =

0 1 1 0 0 1


Q2_D_c =

-8 16 11 14 -11 23

討論:
直接對於element作比較以及運算

Q3_a =

31 64 96


Q3_b =

0.5000 1.0000 1.0000


Q3_b_1 =

0.9643


Q3_c =

80 640 1440


Q3_d =

-0.2939 -0.5967 -0.9487


Q3_e =

45.4649 98.9358 -80.4859

討論:
對於矩陣的element之間的運算要注意乘除之前的".",然而b小題有無卻出現兩種不同的答案
不過對於陣列運算注意維數外若是要element運算則程式寫法要注意


Q4_R_s =

640


Q4_R_p =

7.1006

討論:
sum函數可以直接求出陣列內每個元素的總和


Q5_B =

1 4 7 10 13 16 19 22
2 5 8 11 14 17 20 23
3 6 9 12 15 18 21 24


Q5_C =

1 7 13 19
2 8 14 20
3 9 15 21
4 10 16 22
5 11 17 23
6 12 18 24


Q5_D =

1 3 5 7 9 11 13 15 17 19 21 23
2 4 6 8 10 12 14 16 18 20 22 24

討論:
定義矩陣的方式可以直接A=(1:24)或是用linspace但是要注意的是要分成多少元素要寫出
reshape可以將陣列排列成想要的維度,但是要注意要和元素總量相同

1 則留言:

Chan,H.Y. 提到...

對第三題提出一些簡單的看法
1.相同維數的『矩陣』進行運算可直接使用+-*/等運算符號,此時可不考慮是否需加『.』。
2.相同維數的『陣列』進行運算時,+-的運算可直接進行運算,但是乘除時就要以『.*』『./』的方式來運算。

所以第三題以x與y皆為陣列形式,所以撰寫過程只要以上面的2.即可,並無兩種答案。