短小精悍的matlab代碼收集


參考

https://www.cnblogs.com/gjblog/p/14321065.html

矩陣乘法

矩陣的各種乘法 - yhm138 - 博客園

其他矩陣操作

矩陣實驗室,不解釋

% 橫向復制為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]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM