R語言學習-第三課-R語言與MATLAB程式設計比較
求餘
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)