MATLAB基礎練習題
1、按要求寫出實現該功能的代碼
1)使用方括號“[ ]”操作符產生一個列向量x,內容爲1,2,4,7
x=[1;2;4;7]
2)使用方括號“[ ]”操作符產生一個行向量x,內容爲1,2,4,7
x=[1 2 4 7] | x=[1,2,4,7]
3)使用冒號“:”操作符產生一個行向量x,內容爲9,7,5,3,1
x=[9:-2:1] | x=[9:-2:0]
4)使用方括號“[ ]”操作符產生一個二維數組A,第1行爲9,4,5,1;第2行爲1,0,4,7
/*1:直接創建*/
A=[9 4 5 1;1 0 4 7] | A=[9,4,5,1;1,0,4,7]
/*2:矩陣的合併*/
a=[9 4 5 1] b=[1 0 4 7] A=[a;b]
5)使用zeros函數產生一個3 * 2的二維數組A,使用ones函數產生一個3 * 4的二維數組B,將A、B拼接成3 * 6的二維數組C
A=zeros(3,2)
B=ones(3,4)
C=[A B]
6)使用rand函數產生一個3*4的二維數組A,使用邏輯1標識的方式尋訪A矩陣中大於0.3並且小於0.7的所有元素,賦給B
A=rand(3,4)
B=A>0.3&A<0.7
2、練習矩陣定位函數find的使用
逐句輸入並運行以下命令,觀察每一步的運行結果,弄明白每一條語句的含義。
clear; // clear:清除工作區中的數據; clc:清除命令行窗口中的數據
X=[3 2 0; -5 6 1] //創建1個2行3列矩陣X
indices=find(X>=1) %%語句1 //返回矩陣X≥1的元素的下標%
[row,col]=find(X>=1) %%語句2 //返回矩陣X≥1的元素下標的行和列的取值,分別存放於row和col中
[row,col,value]=find(X>=1) //value存放符合要求的元素的值
3、練習子矩陣的賦值、刪除等操作
已知:A =
1 25 7 20
14 23 6 18
12 23 15 16
20 10 5 9
在MATLAB中給A賦值並完成以下操作:
1)給A中第6個元素賦值爲100;
命令語句如下:
A(6)=100
2)給A的第五列賦值[1,2,3,4];
命令語句如下:
A(:,5)=[1;2;3;4]
3)將矩陣A第2—4行中第1,3,5列元素賦值給矩陣B;
命令語句如下:
B=A((2:4),[1:2:5]) | B=A((2:4),[1,3,5])
4)求矩陣A的大小(行列數);
命令語句如下:
[row,col]=size(A)
5)將A賦值給矩陣C,刪除C的第一行和第三行並顯示;
命令語句如下:
C=A
C([1,3],:)=[]
6)將矩陣A重排成5行4列的矩陣(提示:查找reshape函數的幫助)。
命令語句如下:
A=reshape(A,5,4)
4、練習常用函數的使用
逐句輸入並運行以下命令,觀察每一步的運行結果。
1)
x=[3,2,1,0]
a=length(x)
b=size(x,1)
c=size(x,2)
s=sum(x)
(變量a的結果寫在此處):4
(變量b的結果寫在此處):1
(變量c的結果寫在此處):4
(變量s的結果寫在此處):6
Tips:
size(A,1)該語句返回的時矩陣A的行數;size(A,2) 該語句返回的時矩陣A的列數
2)
x=[3,2,1,0; 5 6 8 7]
b=size(x,1)
c=size(x,2)
d=size(x,3)
s=sum(x)
s2=sum(x(:))
(變量b的結果寫在此處):2
(變量c的結果寫在此處):4
(變量d的結果寫在此處):1
(變量s的結果寫在此處):8 8 9 7
(變量s2的結果寫在此處):32
Tips:
size(x,3):%返回x第三個維度的長度,如果x的維度小於3則返回1
sum:矩陣各列求和
5、按要求編寫fun函數
函數輸入參數:一個向量
函數輸出參數:該向量中所有大於0的元素的和
功能:求該向量中所有大於0的元素的和
函數調用示例:s=fun([-1, 0, 2, 3, -5, 4])
//方法1
function s = fun(vect)
s = 0;
len = length(vect);
for i=1:len
if(vect(i)>0)
s = s+vect(i);
end
end
end
//方法2
function s = fun(vect)
vect1 = vect(vect>0);
s = sum(vect1);
end
bingo~ ✨ 自由不是沒有約束,而是擁有選擇的權利