10/06/2006

PROBLEM #2 唐翊凱R94631038

第一題
題旨:在SARS期間每ㄧ個經過機場出入境的旅客都要量測並紀錄體溫,而現在 有一組華氏溫度量測數據設為B矩陣,B=[98 100 102 104 98.4 98.2 98.5 101 102 99.5] 請寫出程式來解決下面的兩各問題==>a)把華氏溫度轉成攝氏溫度。b)轉換成攝氏溫度後,檢驗每個人的體溫如果高於38度,設定他的值為'1',反之則設為'0'並把結果用矩陣D來表示
分析:首先運用華氏溫標轉成攝氏溫標的公式 C=(F-32)*5/9 ,得到每ㄧ個人的攝氏體溫矩陣C之後,再利用關係運算子來看C矩陣的每ㄧ個元素是否大於38度,結果是真即為1、否即為0。
程式內容: (寫成.m檔的形式)
b=[98 100 102 104 98.4 98.2 98.5 101 102 99.5]
c=(b-32)*5/9
D=(c>38)

程式結果:
c =

Columns 1 through 8

36.6667 37.7778 38.8889 40.0000 36.8889 36.7778 36.9444 38.3333

Columns 9 through 10

38.8889 37.5000


D =

0 0 1 1 0 0 0 1 1 0
討論:
由矩陣D的結果可以得知第3、4、8、9位乘客溫度超過38度C

第二題
題旨: 有A=[ -10 8 6 4 -5 20]、B=[2 8 5 10 -6 3]兩個矩陣,用下列matlab指令來求得D矩陣
(a) D= (A>B) (b) D= (A>5) (c) D=A+B

程式內容及結果: a=[ -10 8 6 4 -5 20]
a =
-10 8 6 4 -5 20
>> b=[2 8 5 10 -6 3]
b =
2 8 5 10 -6 3
>> D=(a>b)
D =
0 0 1 0 1 1 %a小題的結果,當a矩陣中的元素大於b矩陣的元素時輸出1反之為0
>> D=(a>5)
D =
0 1 1 0 0 1 %b小題的結果,當a矩陣中的元素大於數字5時輸出1反之為0
>> D=a+b
D =
-8 16 11 14 -11 23 %c小題的結果,a矩陣中的元素與b矩陣的元素相加


第三題
題旨:練習運用matlab中矩陣的四則運算指令


程式內容及結果:
>> x=[10 20 30]
x =
10 20 30
>> y=[1 4 6],
y =
1 4 6
a小題
>> A=3*x+y
A =
31 64 96
b小題
>> B=5*y./x
B =
0.5000 1.0000 1.0000
c小題
>> C=4*(2*y)
C =
8 32 48
d小題
>> D=sind(x).*cosd(y)
D =
0.1736 0.3412 0.4973

e小題
>> E=(5*x).*sind(2*y)
E =
1.7450 13.9173 31.1868


討論:
在d、e小題,學生於原本程式中相乘的部份沒有加上dot,所以程式會給了一個這樣的結果??? Error using ==> mtimesInner matrix dimensions must agree.學生才想起來上課老師教過矩陣之間元素要各自運算的話要在乘除符號之前加上一個dot符號,於是加上一個dot符號結果就正確了!

第四題
題旨:有一組電阻紀錄成array的形式,寫ㄧ個M-file程式來求這一組電阻的串聯電阻值&並聯電阻值

分析:因為要把array當中每ㄧ個元素的值各自提出,才能做電阻串並聯的運算,所以要利用到老師上課教到的矩陣次標功能


程式內容:
R=[ 10 30 200 400]
series=R(1,1)+R(1,2)+R(1,3)+R(1,4)%4個電阻串聯
parallel=1/((1/R(1,1))+(1/R(1,2))+(1/R(1,3))+(1/R(1,4)))%4個電阻並聯


程式結果:
R =

10 30 200 400


series =

640


parallel =

7.1006

第五題
題旨: A為一個1到24的24個元素矩陣,今天把它重新編排成不同行列數的矩陣==>B in size 3x8; C in size 6x4; D in size 2x12.


分析: 此題要利用到老師講義中矩陣重組reshape這一個指令,就可以改變原先矩陣的形式
程式內容及結果:


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


>> B=reshape(A,3,8)

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

>> C=reshape(A,6,4)

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

>> D=reshape(A,2,12)

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


討論:我們想要的列、行數只要填在reshape指令括號中的第2、3位置,矩陣就會轉換成我們想要的大小

沒有留言: