Matlab学习笔记(一)——特殊矩阵生成(1)

笔记用


1)零矩阵生成

函数:zeros

%% 零矩阵生成
null_matrix=zeros(n);           %生成n*n的零矩阵
null_matrix=zeros(m,n);         %生成m*n的零矩阵
null_matrix=zeros([m,n]);       %同上
null_matrix=zeros(d1,d2,d3);    %生成d1*d2*d3的全零三维数组(可以按此格式推广生成d1*d2*d3*d4*d5*...dN的全零N维数组)
null_matrix=zeros([d1 d2 d3]);  %生成d1*d2*d3的全零三维数组(可以按此格式推广生成d1*d2*d3*d4*d5*...dN的全零N维数组)
null_matrix=zeros(size(A));     %生成与数组A大小一致的零矩阵或数组(对zeros([m,n])的推广)

2)单位矩阵生成

函数:eye

%% 单位矩阵生成
identity_matrix=eye(n);         %生成n*n的单位矩阵
identity_matrix=eye(m,n);       %生成m*n的单位矩阵
identity_matrix=eye(size(A));   %生成与矩阵A大小一致的单位矩阵(注意这里是矩阵而不是数组,这是由于eye函数不支持N维数组(N>=3))

3)全1阵生成

函数:ones

%%1阵生成
M=ones(n);           %生成n*n的全1矩阵
M=ones(m,n);         %生成m*n的全1矩阵
M=ones([m,n]);       %同上
M=ones(d1,d2,d3);    %生成d1*d2*d3的全1三维数组(可以按此格式推广生成d1*d2*d3*d4*d5*...dN的全1 N维数组)
M=ones([d1 d2 d3]);  %生成d1*d2*d3的全1三维数组(可以按此格式推广生成d1*d2*d3*d4*d5*...dN的全1 N维数组)
M=ones(size(A));     %生成与数组A大小一致的全1矩阵或数组(对ones([m,n])的推广)

4)均匀分布随机矩阵生成

函数:rand

%% 均匀分布随机矩阵的生成
% 为(0,1)上的均匀分布
M=rand(n);           %生成n*n的随机矩阵
M=rand(m,n);         %生成m*n的随机矩阵
M=rand([m,n]);       %同上
M=rand(d1,d2,d3);    %生成d1*d2*d3的随机三维数组(可以按此格式推广生成d1*d2*d3*d4*d5*...dN的随机 N维数组)
M=rand([d1 d2 d3]);  %生成d1*d2*d3的随机三维数组(可以按此格式推广生成d1*d2*d3*d4*d5*...dN的随机 N维数组)
M=rand(size(A));     %生成与数组A大小一致的随机矩阵或数组(对rand([m,n])的推广)

5)标准正态分布随机矩阵生成

函数:randn

%% 标准正态分布随机矩阵的生成
% 元素服从标准正态分布(均值为0,标准差为1)
M=randn(n);           %生成n*n的标准正态分布随机矩阵
M=randn(m,n);         %生成m*n的标准正态分布随机矩阵
M=randn([m,n]);       %同上
M=randn(d1,d2,d3);    %生成d1*d2*d3的标准正态分布随机三维数组(可以按此格式推广生成d1*d2*d3*d4*d5*...dN的标准正态分布随机 N维数组)
M=randn([d1 d2 d3]);  %生成d1*d2*d3的标准正态分布随机三维数组(可以按此格式推广生成d1*d2*d3*d4*d5*...dN的标准正态分布随机 N维数组)
M=randn(size(A));     %生成与数组A大小一致的标准正态分布随机矩阵或数组(对randn([m,n])的推广)

6)产生随机排列向量

函数:randperm

%% 产生随机排列向量
M=randperm(n);        %产生1至n之间整数的随机排列向量

7)产生线性等分向量

函数:linspace

%% 产生线性等分向量
M=linspace(a,b);        %产生以区间(a,b)上的100个线性等分点为元素的向量
M=linspace(a,b,n);      %产生以区间(a,b)上的n个线性等分点为元素的向量

8)产生指数区间上的线性等分向量

函数:logspace

%% 产生指数区间上的线性等分向量
M=logspace(a,b);        %产生以区间(10^a,10^b)上的50个线性等分点为元素的向量
M=logspace(a,b,n);      %产生以区间(10^a,10^b)上的n个线性等分点为元素的向量

9)计算矩阵或数组中元素的个数

函数:numel

N=numel(M);             %返回矩阵(数组)M的元素个数

10)产生以输入元素为对角线元素的矩阵

函数:blkdiag

%% 产生以输入元素为对角线元素的矩阵
M=blkdiag(a,b,c);       %产生以a,b,c为对角线元素的矩阵(可以按此格式推广生成以a,b,c,d,e,...为对角线元素的矩阵)
                        %这里的a,b,c等对角线元素可以为矩阵
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值