2013-08-29
,离现在 12
年 56
天,建議確認內容是否仍然適用。資通訊能力檢定
─ MATLAB 練習題庫 第 1 頁
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!
資通訊能力檢定
─ MATLAB 練習題庫
目錄
【觀念題
─15 題】 ........................................................................................................ 2
【程式練習題
─12 題】 ................................................................................................ 5
資通訊能力檢定
─ MATLAB 練習題庫 第 2 頁
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!
【觀念題
─15 題】
1. 在 MATLAB 程式執行中,下列選項何者為錯誤的說明? (複選題)
1. 變數名稱是由英文字母、數字或底數所組成
2. 『a1 』、『a3』及『2a』皆可設為變數名稱
3. 變數名稱長度不能超過 32 個字元
4. 變數需先宣告後才可直接使用
2. 若有 2 個 3x2 矩陣 A 及 B,下列運算何者有誤? (10 分)
1. A+B
2. A*B'
3. A.*B
4. A*B
3. 下列敘述何者有誤?
1.
若 有 二 個 矩 陣
A 及 B 分別為 2x1 矩陣,則執行"A*B"後的結
果為一個 2x1 矩陣
2. 若存在有一個 3x2 矩陣 A,且執行"A(:,end)=[ ]"後產生為一個
3x1 矩陣
3. 若欲清除 workspace 中所有的變數值,可在 MATLAB 中 執 行
"clear all"
4. 若存在有一個 3x2 矩陣 B,且執行"B.*B"後產生為一個 3x2
矩陣
4. 對於一個 3x2 的矩陣 A,試問如下說明何者正確?
1.
執 行
"reshape(A,1,6)" 可形成一 1x6 矩陣
2. 執行"A(2,1)" 將會顯示第 2 行第 1 列的數值
3. 執行"diag(A)"將會顯示 3 個數值
4. 執行"A(1,:)=[ ]" 將得到一個 3x1 矩陣
5. 若有一程式碼表示如下,如下描述所者正確?
clc;
clear all;
A=rand(1,1000);
B=A+5;
A=[A A];
1. rand 指令是高斯分佈方式產生亂數矩陣
2. 執行完上述程式後,A 矩陣將為一個 1x1000 的矩陣
3. 執行"B=A+5;"代表 B 會為矩陣 A 內的所有數值加 5
4. clc 是清除記憶體內的所有變數
資通訊能力檢定
─ MATLAB 練習題庫 第 3 頁
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!
6. 下列指令何者不為除錯指令?
1. dbclear
2. dbquit
3. dbtype
4. cell
7. 下述指令何者不可顯示一個異質陣列 B 的內部所有的元素?
1. B{:}
2. celldisp(B)
3. disp(B)
4. B{:,:}
8. 下列敘述何者有誤?
1. 程式可能發生的錯誤大致有二種:語法錯誤與邏輯錯誤
2. 使用"dbstop if error" 可使 MATLAB 停留在錯誤發生的程式
碼,並顯示於 MATLAB 除錯器
3. 若在 K>> 狀態下輸入"dbquit",將會離開除錯模式
4. dbtype 如同 type 指令,但 dbtype 是能適用於除錯模式下
9. 下述程式的執行結果為何?
a=[2 3;1 4];
b=[0 9; 9 0];
a*b
1.
0
9
27
0
2.
9
36
18
27
3.
27
18
36
9
4.
0
27
9
0
10. 下述程式的執行結果為何?
a=[2 3;1 4];
b=[0 9; 9 0];
a.*b
1.
0
9
27
0
2.
9
36
18
27
3.
27
18
36
9
資通訊能力檢定
─ MATLAB 練習題庫 第 4 頁
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!
4.
0
27
9
0
11. 下述程式的執行結果為何?
a=2+3i;
b=1+4i;
a*b
1. -10+11i
2. 2+12i
3. 2-12i
4. 10-11i
12. 若於 matlab 輸入
a=[1 4 3; 2 3 1];
size(a)
則顯示
ans =
1. 6
2. 3 2
3. 2 3
4. 0
13. (B) 在 matlab 中一訊號序列為 x, 將此訊號做傅利葉轉換的指令為
(A)plot(x) (B)fft(x) (C)cos(x) (D)fftshift(x)
14. (D) 承上題,在 matlab 中要完成傅利葉轉換訊號的平移,指令為
(A)plot( ) (B)fft( ) (C)cos( ) (D) fftshift ( )
15. (B) 訊號 x=cos(2*pi*f1*t),請問下列何者代表此訊號的頻率?
(A)cos (B)f1 (C)pi (D)ifft(x)
資通訊能力檢定
─ MATLAB 練習題庫 第 5 頁
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!
【程式練習題
─12 題】
1. 試在一 M 檔案中執行如下運算和指令
a. 清除螢幕畫面並重置記憶體變數
b. 試設定二變數 a 的內容為[1,2,3,4]與 b 的內容為[5,6,7,8]並顯示在螢幕上
c. 試顯示變數 a 的詳細資料
d. 試清除變數 b
【解】
a. clc; clear;
b. a=[1,2,3,4]
b=[5,6,7,8]
c. whos a
d. clear b
2. 試以 MATLAB 程式計算
a. 1+2+....+100=?
b. 1*2*....*100=?
c. 若有一位同學的五日花費分別為{210,180,150,200,195},而每日需增加
30 元的洗衣費,試計算五日的總花費?
【解】
clc ;clear ;
a=sum(1:100);
b=prod(1:100);
c=[210 180 150 200 195];
sum(a+30)
3. 試以 MATLAB 在同一張圖中畫出如下曲線
a. 4sin(2*pi*t)
b. 5cos(2*pi*t)
c. 4sin(2*pi*t)+5cos(2*pi*t)
其中
t=0~1 (間隔為 0.001),並標示 x 軸為 sec,y 軸為 function,並請標示每條
曲線的數學式。
【解】
clc;clear all;
t=0:0.001:1;
plot(t,4*sin(2*pi*t),t,5*cos(2*pi*t),t,4*sin(2*pi*t)+5*cos(2*pi*t));
xlabel('sec')
ylabel('function')
4. 若一個 25 人之班級的數學考試成績分布分別為
{82,91,13,92,64,10,28,55,96,97,16,98,96,49,81,15,43,92,80,96,66,4,85,94,68}
試以直方圖顯示資料的分佈情況和統計特性,並於
x軸標示'分數'、y軸標示'人
數
'及圖形的標題為'數學成績分布'
【解】
資通訊能力檢定
─ MATLAB 練習題庫 第 6 頁
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!
clc;
clear all
x=[82,91,13,92,64,10,28,55,96,97,16,98,96,49,81,15,43,92,80,96,66,4,85,94,68]
hist(x,100);
xlabel('分數');
ylabel('人數');
title('數學成績分布');
grid on
5. 請隨機產生 2 個 4x16 矩陣{A,B},其中 A 使用均勻分佈產生,B 使用高斯分
佈產生,而
C=[A B]。將{A,B}分別重組成 2 個 1x64 矩陣為{D,E}及 C 重組成
一個
1x128 矩陣為 F,試畫出一圖包含三張{D,E,F}的分布子圖(運用 hist 指令)
【解】
clc;
clear;
A = rand (4,16);
B = randn(4,16);
C = [A B]
D = reshape(A,1,64);
E = reshape(B,1,64);
F = reshape(C,1,128);
subplot(3,1,1); hist(D, 40); title('A');
subplot(3,1,2); hist(E, 40); title('B');
subplot(3,1,3); hist(F, 40); title('C');
6. 【BPSK 調變程式】
試撰寫一程式能隨機產生
1xN 的數位資料,並將輸入數位資料 0 改成輸出為
1,而輸入數位資料 1 改成輸出為-1。試繪出該輸出結果,並繪出二張子圖,
第一張子圖為輸入資料,第二張子圖為輸出結果。請以
for end 方式寫出
【解】
clc;
clear all ;
n=input('請輸入欲隨機產生數位資料長度:');
data=randint(1,n,2);
for s=1:1:n;
symbol(1,s)=(-1).^data(1,s);
end
symbol;
subplot(2,1,1);
plot(data,'x');
subplot(2,1,2);
plot(symbol,'o');
7. 同上題,請以 while 方式寫出
【解】
clc;
clear all ;
n=input('Enter the length of data sequence:');
資通訊能力檢定
─ MATLAB 練習題庫 第 7 頁
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!
data=randint(1,n,2);
s=1;
while s<=n
symbol(1,s)=(-1).^data(1,s);
s=s+1;
end
symbol;
subplot(2,1,1);
plot(data,'x');
subplot(2,1,2);
plot(symbol,'o');
8. 試撰寫滿足如下需求之程式:
請將鍵盤輸入一數值顯示於螢幕上,並進行該數值的奇數
(odd) 或偶數(even)
判斷,其後再將結果顯示於螢幕中。
諸如螢幕顯示為
請輸入數值:
3
數值
3 是為奇數
請以
if-else-end 方式撰寫
【解】
clc;clear all;
y = input('請輸入一數值:');
if rem(y, 2)==0
fprintf('數值%g是為偶數n',y);
else
fprintf('數值%g是為奇數n',y);
end
9. 同上題,請以 switch-case 方式撰寫
【解】
clc;clear all;
y = input('請輸入一數值:');
switch rem(y, 2)
case {0}
fprintf('數值%g是為偶數n',y);
otherwise
fprintf('數值%g是為奇數n',y);
end
10. 【QPSK 調變】
請隨機產生一組
40 個數位資料位元 (包含 0,1),並將數位資料進行如下處
理:
若輸入資料為
00 時,則顯示 1
若輸入資料為
01 時,則顯示 i
若輸入資料為
10 時,則顯示-1
若輸入資料為
11 時,則顯示-i
請以
if-else-end 方式撰寫
資通訊能力檢定
─ MATLAB 練習題庫 第 8 頁
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!
【解】
clc; clear all;
data=randint(1,40,2)
Index=1;
for j=1:2:40
if data(1,j:j+1)==[0 0]
symbol(1,Index)=1
Index=Index+1
elseif data(1,j:j+1)==[0 1]
symbol(1,Index)=i
Index=Index+1
elseif data(1,j:j+1)==[1 0]
symbol(1,Index)=-1
Index=Index+1
elseif data(1,j:j+1)==[1 1]
symbol(1,Index)=-i
Index=Index+1
end
end
data
symbol
11. 試撰寫一副程式(檔名為 EOD)可自動判斷輸入數值為奇數或偶數,並於螢幕
上顯示奇數
(odd)或偶數(even),諸如
輸入變數:
v=[3 4 5 6]
螢幕顯示:
odd even odd even
【解】
function result=EOD(v)
L=length(v);
Index=1;
for j1=1:L
if mod(v(1,j1),2)==0
result(1,(j1-1)*L+Index:(j1-1)*L+Index+3)='even';
Index=Index+4;
elseif mod(v(1,j1),2)~=0
result(1,(j1-1)*L+Index:(j1-1)*L+Index+2)='odd';
Index=Index+3;
end
end
12.
請以
Mtalab 產生並顯示 impulse signal 及 step signal。顯示區間為-5 秒到 10
秒,取樣頻率為
1Hz。
【解】
clear; close all;
t=-5:10;
step_x=(t>=0);
impulse_x=(t==0);
figure;
subplot(211);
stem(t,step_x);
資通訊能力檢定
─ MATLAB 練習題庫 第 9 頁
【註】本練習題庫僅提供學生自行參考練習,且不一定列入檢定考題範圍,請多加留意!
xlabel('time sequence');
ylabel('step signal');
subplot(212);
stem(t,impulse_x);
xlabel('time sequence');
ylabel('impulse signal');
「侵權舉報」
提交相關資料,我們將儘快核實並處理。