42.matlab中line()的用法 (2012-12-15 18:08:01)转载▼
标签: matlab 杂谈
line([起点横坐标,终点横坐标],[起点纵坐标,终点纵坐标]),
例line([1,2],[3,4])将画出(1,3)到(2,4)的一条直线,而不是(1,2)到(3,4)。
当line(a,b)中,a b是相同大小的矩阵时,将会在对应的每一列做一条直线。
当line(a,b,c)时,相应地会在三维图中画一条线。
a b c 均为2XN矩阵。
根据Matlab文档,randperm最常用的用法是是返回一个从1-n的包含n个数的随机排列(每个数字只出现一次)——以行向量的形式
1
p = randperm(n) returns a row vector containing a random permutation of the integers from 1 to n inclusive
如果希望从1-n的数字序列里面随机返回k个数,则可以使用
1
p = randperm(n,k)
其中,这k个数之间彼此也是不相同的。可见,randperm能够产生不重复的随机排列,结合原数据,可写成类似下面的形式:
1
new = old( randperm( size(old,1) ) , : );
这样新数组中的各行就被重排了。如果各列也需要重排,则可以嵌套使用。
Matlab文档中还说,randperm完成的是不重复的重排采样(k-permutations),如果结果中的数需要重复多次出现的情况,则可以用:
1
randi(n,1,k)
randperm和rand、randi、randn一样,其随机数的生成是收到rng命令控制的,因此,可通过该命令影响随机数据流rand stream的情况。