參考
https://www.cnblogs.com/gjblog/p/14321065.html
矩陣乘法
其他矩陣操作
矩陣實驗室,不解釋
% 橫向復制為3份,縱向復制為2份
repmat([1,2;3,4],2,3)
% ans =
%
% 1 2 1 2 1 2
% 3 4 3 4 3 4
% 1 2 1 2 1 2
% 3 4 3 4 3 4
size([1,2,3;4,5,6],2) %返回矩陣列數,3
size([1,2,3;4,5,6],1) %返回矩陣行數,2
[1+j,1+23j]' %共軛轉置
[1+j,1+23j].' %轉置
diag([1,2,3])
輸入矩陣的話,返回矩陣對角線元素;
輸入向量的話,返回以向量為對角線的方陣
輸出x到y,固定點數n,點之間間隔相等的的一串向量。不設n默認100點
linspace(x,y,n)
diff([1, 2, 4, 7]) %相當於numpy.diff()
cumsun(A) %相當於numpy.cumsum()
A = 1 2 3
1 2 3
2 3 4
unique(A, 'row')
>> 1 2 3
2 3 4
線性代數
%特征值和特征向量
a = [3 0; 0 0]
[v, d] = eig(a)
%orth求矩陣所有列的標准正交基
a = [3 0; 0 0]
[v, d] = eig(a)
%null求矩陣的零空間的標准正交基
A * null(A) = 0
rref得到矩陣A的簡化行階梯型矩陣
A = 1 1 1
0 2 0
[R, p] = rref(A)
>>
R = 1 0 1
0 1 0
p = 1 2 (p返回階梯所在的行號)
隨機數
randsrc(3,2,[1,1,1,5]) %隨機信源,3行2列,符號“1”出現幾率提高
randsrc(1,10,[0,1]) %01信源
randsrc(1,10,[-1,1]) %雙極性信源
randi([0, MAX], 1, LEN) %輸出1行,LEN列矩陣,范圍為0 ~ MAX,均勻分布整數
randn(ROW, COL)
>> 輸出ROW行COL列符合標准正態分布的隨機數N(0,1)
normrnd(mu, delta, 1, LEN)
直接輸出1行,LEN列符合正態分布N(mu,delta^2)的隨機數,注意輸入為標准差
randperm(6)
>> 3 2 6 1 4 5
實現Python中的map,filter,reduce操作
[1,2,3].^2-3 %[-2,1,6]
從矩陣中選出符合條件的元素
x =
1 2 3
4 5 6
7 8 9
>> x(x>=5)
ans =
7
5
8
6
9
繪圖
text(2.1, 3.2, 'txt', 'r')
>> 在坐標(2.1, 3.2)處添加紅色的文字'txt'
類型轉換和進制轉換
d=dec2bin([1,2;3,4]) %十進制轉二進制字符串
bin2dec(d) %二進制字符串轉十進制
num2str([1,2;3,4]) %相當於Python里的str()
>> '1 2'
'3 4'
結構體元胞數組相關
sfield(a, 'a1') %判斷是否包含某個字段,包含返回1,不包含返回0
fieldnames(a) %結構體的字段名稱輸出為一列元胞數組
把結構體存儲的變量輸出為一列元胞數組中
a.a1 = 'aaa'; a.a2 = 123;
struct2cell(a)
>> {'aaa'}
{123}
將cell中的數據轉換成矩陣形式(可以拼接相同格式的數據)
a = {[1 2]} {2 1}
cell2mat(a)
>> [1 2 2 1]
