天天看點

matlab求兩向量夾角_matlab入門練習

練習題來自:

湖心亭:MATLAB基礎練習(一)​zhuanlan.zhihu.com

matlab求兩向量夾角_matlab入門練習
1、按要求寫出實作該功能的代碼

(1)使用方括号“[ ]”操作符産生一個列向量x,内容為1,2,4,7

(2)使用方括号“[ ]”操作符産生一個行向量x,内容為1,2,4,7

(3)使用冒号“:”操作符産生一個行向量x,内容為9,7,5,3,1

(4)使用方括号“[ ]”操作符産生一個二維數組A,第1行為9,4,5,1;第2行為1,0,4,7

>> b = [1;2;4;7]

b =

     1
     2
     4
     7

>> a =[1,2,4,7]

a =

     1     2     4     7


>> c=[9:-2:1]

c =

     9     7     5     3     1


>> d = [9,4,5,1;1,0,4,7]

d =

     9     4     5     1
     1     0     4     7
           

(5)使用zeros函數産生一個3*2的二維數組A,使用ones函數産生一個3*4的二維數組B,将A、B拼接成3*6的二維數組C

>> a = zeros(3,2)

a =

     0     0
     0     0
     0     0

>> b = ones(3,4)

b =

     1     1     1     1
     1     1     1     1
     1     1     1     1

>> c=[a b]

c =

     0     0     1     1     1     1
     0     0     1     1     1     1
     0     0     1     1     1     1
           

(6)使用rand函數産生一個3*4的二維數組A,使用邏輯1辨別的方式尋訪A矩陣中大于0.3并且小于0.7的所有元素,賦給B

>> a = rand(3,4)

a =

    0.0975    0.9575    0.9706    0.8003
    0.2785    0.9649    0.9572    0.1419
    0.5469    0.1576    0.4854    0.4218

>> b = [a>0.3 & a<0.7]

b =

  3×4 logical 數組

   0   0   0   0
   0   0   0   0
   1   0   1   1
           
2、練習矩陣定位函數find的使用

逐句輸入并運作以下指令,觀察每一步的運作結果,弄明白每一條語句的含義。

clear;

X=[3 2 0; -5 6 1]

indices =find(X>=1) %%語句1

[row,col] =find(X>=1) %%語句2

>> clear;
>> X = [3 2 0;-5 6 1]

X =

     3     2     0
    -5     6     1

>> indices = find(X>=1) %%語句1

indices =

     1
     3
     4
     6

>> [row,col] = find(X>=1)

row =

     1
     1
     2
     2


col =

     1
     2
     2
     3
           
3、練習子矩陣的指派、删除等操作

已知:A =

1 25 7 20

14 23 6 18

12 23 15 16

20 10 5 9

在MATLAB中給A指派并完成以下操作:

(1) 給A中第6個元素指派為100;

(2) 給A的第五列指派[1,2,3,4];

(3) 将矩陣A第2—4行中第1,3,5列元素指派給矩陣B;

(4) 求矩陣A的大小(行列數);

(5) 将A指派給矩陣C,删除C的第一行和第三行并顯示;

(6) 将矩陣A重排成5行4列的矩陣(提示:查找reshape函數的幫助)。

>> A = [1 25 7 20;14 23 6 18;12 23 15 16;20 10 5 9]

A =

     1    25     7    20
    14    23     6    18
    12    23    15    16
    20    10     5     9

>> A(6)=100

A =

     1    25     7    20
    14   100     6    18
    12    23    15    16
    20    10     5     9

>> A(:,end+1)=[1;2;3;4]

A =

     1    25     7    20     1
    14   100     6    18     2
    12    23    15    16     3
    20    10     5     9     4

>> B = A(2:4,[1,3,5])

B =

    14     6     2
    12    15     3
    20     5     4

>> size(A)

ans =

     4     5

>> 
>> C=A

C =

     1    25     7    20     1
    14   100     6    18     2
    12    23    15    16     3
    20    10     5     9     4

>> C([1,3],:)=[]

C =

    14   100     6    18     2
    20    10     5     9     4

>> A

A =

     1    25     7    20     1
    14   100     6    18     2
    12    23    15    16     3
    20    10     5     9     4

>> A=reshape(A,5,4)

A =

     1   100    15     9
    14    23     5     1
    12    10    20     2
    20     7    18     3
    25     6    16     4

           
4、練習常用函數的使用:

逐句輸入并運作以下指令,觀察每一步的運作結果。

(1)

x=[3,2,1,0]

a=length(x)

b=size(x,

1

)%%

行數

c=size(x,

2

)%%

列數

s=sum(x)

x = [3 2 1 0]
x =

     3     2     1     0

>> a = length(x)

a =

     4

>> b = size(x,1)

b =

     1

>> c = size(x,2)

c =

     4

>> s = sum(x)

s =

     6

           

(2)

x=[3,2,1,0; 5 6 8 7]

b=size(x,1)

c=size(x,2)

d=size(x,3)%%

如果次元小于3則傳回1

s=sum(x)

s2=sum(x(:))

>> x=[3 2 1 0;5 6 8 7]

x =

     3     2     1     0
     5     6     8     7

>> b=size(x,1)

b =

     2

>> c=size(x,2)

c =

     4

>> d=size(x,3)

d =

     1

>> s=sum(x)

s =

     8     8     9     7

>> s2=sum(x(:))

s2 =

    32
           
5、按要求編寫fun函數:

函數輸入參數:一個向量

函數輸出參數:該向量中所有大于0的元素的和

功能:求該向量中所有大于0的元素的和

函數調用示例:s=fun([-1, 0, 2, 3, -5, 4])

function [count]=fun(a)
length=size(a(:));
count=0;
for i=1:length
    if a(i)>0
        count=count+a(i);
    end
end