http://www.cnblogs.com/wentingtu/archive/2012/03/30/2425582.htmlR函数比较齐全的博客
求余
y = 5 ; x = 2; y%%x = 1;
matlab mod(y,x);
R y%%x;
取行数
matlab size(m,1);
R nrow(m);
重复矩阵
1 2 3 ->1 2 3 1 2 3
matlab repmat(m,i,j) 按行重复i次,按列重复j次。如上就用repmat(m,1,2)
如果要达到 1 2 3
1 2 3的效果就用 repmat(m,2,1)
R rep(m,2) 按列重复
合并矩阵
m1= 1 2 3 m2=4 5 6 m=1 2 3 4 5 6
横向合并
R cbind(m1,m2);
matlab [m1,m2];
纵向合并
R rbind(m1, m2)
MATLAB [m1 m2];
无放回随机抽样
m,为总体。num为抽取样本的个数
matlab randsample(m,num); returns a k-by-1 vector y of values sampled uniformly at random, without replacement, from the integers 1 to n.
R sample(m,num,REPLACE=FALSE);FALSE表示不放回抽样,TRUE表示放回抽样
生成特殊矩阵
R mat.or.vec(i, j) i行j列全为0的矩阵
MATLAB ZEROS(i,j)
SSE = matrix(data, i, j,byrow = TRUE) i行j列,其中的数据为data中的数据,按行排列
求向量长度
v = 1 2 3
R length(v)=3
matlab length(v)=3
矩阵对应元素相乘
m1=1 2 3 m2= 4 5 6 m = 4 10 18
matlab m1.*m2;
R m1*m2;
正常的矩阵相乘
matlab m1*m2
R m1%*%m2
求样本标准差
R sd(v)
matlab std(v)
找最小值的下标(一般是取一个向量,然后再求)
x = 5 2 1 4 10
R which.min(x) = 3
MATLAB find(x == min(x))
找指定元素所在的下标,并剔除
index= find(matrix == num) index保存值为num的下标,下标为按列计算,算完一列再算第二列
index = (vector > num) 大于num的下标取1,其他的取0,一般是挑选出来,然后用于剔除
vector(index) = [];剔除index所在的元素
去除向量指定下标的值
x = 5 8 10 11 12
R x[-1] = 8 10 11 12
matlab x(1)=[]
取离0值最近的数
x = 1.7 y=-1.7
R as.integer(x) 1 as.integer(y)=-1
matlab fix(x) fix(y)