总结一下MATLAB常用的命令和函数,方便自己以后查阅。
save
save 保存指定的变量到当前目录,例如:
A=[1,2,3];
B=[4,5,6];
save('text.mat','A','B');
load
load,将之前保存到文件的变量加载工作区,直接用load,会覆盖同名的变量,可以采用如下形式:
data=load('text.mat');
这会将text.mat文件中的数据加载到data,这时data就成了一个结构数组。 当然也可以选择加载部分变量,如:
data=load('text.mat','A');
该命令只将A加载到data中。
返回 文章目录
set
set 命令
设置句柄图像的属性,需要注意的是计算机屏幕的句柄值为0,该函数的内容很丰富用help命令查看。
strcat
strcat 命令
连接字符串的函数,经常用在需要批量处理的情况,可以下面第5个命令mkdir合用。下面举一个简单的例子,看一下strcat的基本用法。
a='I am';
b=' a nice person.'
c=strcat(a,b);
运行结果为:c=‘I am a nice person.’,需要注意程序中的空格。
mkdir
mkdir 命令
创建文件夹,可以和strcat命令联合使用,创建一系列文件夹,文件夹的名字可以时连续的,例如
for i = 1:3
mkdir(strcat('Folder_',num2str(i)));
end
运行之后,在当前工作目录下创建了三个文件夹,分别为Folder_1,Folder_2和Folder_3,当然也可以指定目录下创建文件夹。
返回 文章目录
sort
sort 命令
排序,IX存储排序的结果abb中的元素在原来数组ab中的位置索引。
ab=[22,11,33]
ab =
22 11 33
>> [abb,IX]=sort(ab)
abb =
11 22 33
IX =
2 1 3
find
find 命令
返回非零元素的行数和列数
>> aa=[1,0;1,1]
aa =
1 0
1 1
>> [row,col]=find(aa)
row =
1
2
2
col =
1
1
2
返回非零元素的行数和列数
round
round 命令
四舍五入,需要注意数值的正负
>> test=[-1.3,-1.5,1.3,1.5]
test =
-1.3000 -1.5000 1.3000 1.5000
>> round(test)
ans =
-1 -2 1 2
round,四舍五入
sparse
sparse 函数
创建稀疏矩阵,常用的格式:
sparse(A):将矩阵A转化为稀疏矩阵的形式,例如:
>> A=eye(3)
A =
1 0 0
0 1 0
0 0 1
>> B=sparse(A)
B =
(1,1) 1
(2,2) 1
(3,3) 1
>> full(B)
ans =
1 0 0
0 1 0
0 0 1
注: full 函数可以返回原来的矩阵的表达形式。
S = sparse(i,j,s,m,n,nzmax),
由i,j,s三个向量创建一个m*n的稀疏矩阵,并且最多含有nzmax个元素。
S = sparse(i,j,s,m,n),
此时,nzmax = length(S)
B=sparse([2,2,3],[1,2,3],[3,1,2],4,4)
full(B)
结果为
B =
(2,1) 3
(2,2) 1
(3,3) 2
ans =
0 0 0 0
3 1 0 0
0 0 2 0
0 0 0 0
nnz
nnz 函数:Number of nonzero matrix elements
矩阵非零元素的数量,例如
>> A=eye(3)
A =
1 0 0
0 1 0
0 0 1
>> num=nnz(A)
num =
3
numel
numel函数
计算数组中满足指定条件的元素个数
用法如下:
n = numel(A); % 返回数组A中元素个数。
n = numel(A,A>2); % 返回数组A中大于2的元素个数。
n = numel(A, index1, index2, … indexn); % 返回A(index1, index2, … indexn)中元素的个数
例如:
>> A=rand(4)
A =
0.8147 0.6324 0.9575 0.9572
0.9058 0.0975 0.9649 0.4854
0.1270 0.2785 0.1576 0.8003
0.9134 0.5469 0.9706 0.1419
>> numel(A)
ans =
16
>> numel(A, A>0.5)
ans =
10
>> numel(A,1,2)
ans =
1
>> numel(A,1:2,2:3)
ans =
4
变量的查看、保存和清除
变量的查看、保存和清除的命令小结
- 变量的查看
who:列出当前工作空间的变量
whos: 列出当前工作空间的变量及信息 - save filename.mat:将所有变量都保存到 filename.mat,该文件保存在当前目录下
也可以只保存部分变量,例如
A=[1,2,3];
B=[4,5,6];
save('text.mat','A','B');
- 变量的清除
clear:清除全部变量
clear var1:清除变量var1
clearvars -except var1 var2:清除除var1 var2之外的所有变量
clear v*:可按照一定的命名规则清除变量,如清除以字母v开头的全部变量
clear global var,clear global:清除某个全局变量,清除所有全局变量可使用
lognpdf
lognpdf 对数正态分布
Y = lognpdf(X,MU,SIGMA),mu是均值(期望),SIGMA是标准差。
randperm 和 randsample
- randperm: 生成不重复的随机排列,注意时返回一个行向量
类似的命令有randi,该函数可以生成重复的元素
用法:
P = randperm(N),
P = randperm(N,K) ,此处特别注意:K<=N
例如:
>> randperm(4)
ans =
1 2 3 4
>>
>> randperm(4,3)
ans =
1 2 4
>> randperm(4,5)
Error using randperm
K must be less than or equal to N.
- randsample
随机抽样,可以重复,也可以不重复,可通过参数进行控制
用法:
randsample(n,k): 返回k个不相同的数(1:n)
randsample(ARRAY,k): 从ARRAY数组里面随机取出k个不相同的元素
randsample(n,k,replacement): replacement表示是否允许重复,1表示重复,0表示不重复
randsample(population,k,true,w) : 具有权重功能,可以设置population中每一个元素出现的频率,w是权重系数,w可以结合某些概率分函数使用
例如:
K>> randsample(4,3,1)
ans =
4
4
2
K>> randsample(4,3,0)
ans =
2
1
4
K>> randsample([22,33,44,55],3,1)
ans =
33 44 22
K>> randsample([22,33,44,55],3,1)
ans =
33 33 22
K>> randsample([22,33,44,55],1,true,[0.8,0.1,0,0.1])
ans =
22
K>> randsample([22,33,44,55],2,true,[0.8,0.1,0,0.1])
ans =
22 22
说明:22出现的概率设置为0.8
返回 文章目录