短小精悍的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