码迷,mamicode.com
首页 > 其他好文 > 详细

matlab-2

时间:2015-04-22 20:36:40      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

1、isscalar

该函数用于判断输入参数是否是一个标量。在matlab中所谓标量,即1行1列的矩阵。
语法格式:
TF = isscalar(A)
如果矩阵A是一行一列的,则返回逻辑1(true),否则返回逻辑0(false)。
相关函数:isa、isvector
 
2、随机函数

a)rand函数

rand(n):生成0到1之间的n阶随机数方阵

rand(m,n):生成0到1之间的m×n的随机数矩阵

b)randint函数

randint(m,n,[1 N]):生成m×n的在1到N之间的随机整数矩阵,其效果与randint(m,n,N+1)相同。

>> randint(3,4,[1 10])

ans =

     5     7     4    10
     5     1     2     7
     8     7     8     6
>> randint(3,4,11)

ans =

    10     9     6     9
     5    10     8     9
    10     0     2     6

c)randperm函数

randperm(n):产生一个1到n的随机顺序。
>> randperm(10)

ans =

     6     4     8     9     3     5     7   10     2     1

 

3、

xn是一个向量,也就是一维数组,xn(k:-1:k-M+1)的意义:假设k=10,M=5,则该式变为xn(10:-1:6),则x = xn(10:-1:6)的意思就算把xn(10)至xn(6)共五个数按从10到6的顺序赋给x(1)到x(5),即x(1)=xn(10),x(2)=xn(9)....,如果是正向的就不用加-1,例如xn(6:10),默认间隔为1.

 

4、inf、nan

Matlab中的Inf和-Inf分别代表正无穷和负无穷;

NaN表示非数值的值;

无穷一般是由于0 做了分母或者运算溢出,产生了超出双精度浮点数数值范围的结果;

非数值量则是因为0/0,或者Inf/Inf型的非正常运算。

 

5、zeros函数和ones函数

zeros函数——生成零矩阵

ones函数——生成全1阵

 

【zeros的使用方法】

B=zeros(n):生成n×n全零阵。

B=zeros(m,n):生成m×n全零阵。

B=zeros([m n]):生成m×n全零阵。

B=zeros(d1,d2,d3……):生成d1×d2×d3×……全零阵或数组。

B=zeros([d1 d2 d3……]):生成d1×d2×d3×……全零阵或数组。

B=zeros(size(A)):生成与矩阵A相同大小的全零阵。

 

【ones的使用方法】

ones的使用方法与zeros的使用方法类似。

 

6、repmat函数

repmat 即 Replicate Matrix ,复制和平铺矩阵

一、B = repmat(A,m,n)
将矩阵 A 复制 m×n 块,即把 A 作为 B 的元素,B 由 m×n 个 A 平铺而成。B 的维数是 [size(A,1)*m, size(A,2)*n] 。
>> A = [1,2;3,4]
A =
1 2
3 4
>> B = repmat(A,2,3)
B =
1 2 1 2 1 2
3 4 3 4 3 4
1 2 1 2 1 2
3 4 3 4 3 4
二、B = repmat(A,[m n])
与 B = repmat(A,m,n) 用法一致。
 
7、matlab代码中省略号代表改行没结束,进行续行。
 
8、max函数

一:MAX函数的几种形式 
(1)max(a)

 (2)max(a,b)

 (3)max(a,[],dim) 

(4)[C,I]=max(a)

 (5)[C,I]=max(a,[],dim) 
二:举例说明函数意思 
(1)max(a) 
如果a是一个矩阵,比如a=[1,2,3;4,5,6],max(a)的意思就是找出矩阵每列的最大值, 

本例中:max(a)=[4,5,6] 
(2)max(a,b) 
如果a和b都是大于1维的矩阵,那么要求a和b的行列的维数都要相等,函数的结果是比较a和b中每个元素的大小,

比如: 
a=[1,2,3;4,5,6]      b=[4,5,6;7,8,3] 

max(a,b)=[4,5,6;7,8,6] 

另外,如果a和b中至少有一个是常数,也是可以的。

比如:a=[1,2,3;4,5,6]      b=3     c=5 
max(a,b)=[3,3,3;4,5,6]       

max(b,c)=5 
(3)max(a,[],dim) 
这个函数的意思是针对于2维矩阵的,dim是英文字母dimension的缩写,意思是维数。 

当dim=1时,比较的a矩阵的行,也就是和max(a)的效果是一样的;

当dim2时,比较的是a矩阵的行。

下面举个例子: 
a=[1,2,3;4,5,6]      

 max(a)=max(a,[],1)=[4,5,6]    比较的第一行和第二行的值  

max(a,[],2)=[3,6]

(4)[C,I]=max(a) 
C表示的是矩阵a每列的最大值,I表示的是每个最大值对应的下标:

 下面举例说明: 
还是刚才那个例子:a=[1,2,3;4,5,6]          [C,I]=max(a) 
结果显示的是C=[4,5,6]       I=[2,2,2]   返回的是最大值对应的行号。 
(5)[C,I]=max(a,[],dim) 
同理:如果dim=1时,其结果和[c,i]=max(a)是一样的。 

当dim=2时,同样上面的矩阵a,我们运行一下: 
[c,i]=max(a,[],2)     结果是:c=[3,6]   i=[3,3]    i返回的是矩阵a的列号。

 

matlab-2

标签:

原文地址:http://www.cnblogs.com/xiaojingang/p/4448454.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!