matlab、r向量與矩陣操作
描述
matlab
r
1建立行向量v=[1 2 3 4]
v=[1 2 3 4]
v<-c(1,2,3,4)或v<-scan(),然後輸入1 2 3 4,並按enter
2建立列向量v=[1 2 3 4]』
v=[1;2;3;4]
同上,r中不區分行列
3建立矩陣a=(1 4 2 5 3 6 )
a=[1 2 3;4 5 6]
a<-matrix(c(1,2,3,4,5,6),
nrow=2,byrow=true)
4訪問向量中元素,如第3個元素
v(3)
v[3]
5訪問矩陣中元素,如第二行,第三列
a(2,3)
a[2,3]
6用訪問向量元素的方式訪問矩陣元素
a(6) **先數列後數行
a[6] **先數列後數行
7生成等差遞增序列(單位步長),如2,3,4,5,6,7
2:72:7
8生成等差遞減序列(單位步長),如7,6,5,4,3,2
7:-1:2
7:29
生成等差遞增序列,
如2,5,8,11,14
2:3:14
seq(2,14,3)
107-9歸納起來,介於a和b之間,等差的n個數,可用函式
linspace(a,b,n)
seq(a,b,len=n)
11構建以10為底的對數等距,即在10a和10b之間的n個數
logspace(a,b,n)
10^seq(a,b,len=n)
12構建所有元素都為0的k維向量
zeros(k,1)列向量
zeros(1,k)行向量
rep(0,k)
13構建所有元素都為j的k維向量
j*ones(k,1) 列向量
j*ones(1,k) 列向量
rep(j,k)
14構建所有元素都為0的n×m矩陣
zeros(n,m)
matrix(0, nrow=n,ncol=m)
或matrix(0 ,n, m)
15構建所有元素都為j的n×m矩陣
j*ones(n,m)
matrix(j, nrow=n, ncol=m)
或matrix(j, n, m)
16n×n的單位矩陣
eye(n)
diag(n)
17構建對角陣,使其對角線上的元素為向量v
diag(v)
diag(v, nrow=length(v))
18提取矩陣a對角線元素
v=diag(a)
v<-diag(a)
19矩陣橫向連線(行數要相等)
[a1 a2]
cbind(a1,a2)
20矩陣縱向連線(列數要相等)
[a1;a2]
rbind(a1,a2)
21給定向量x和y,長度分別為m和n,生成m×n的矩陣x,其行為x;生成m×n的矩陣y,其列為y;
[x,y]=meshgrid(x, y)
m<-length(x); n=length(y);
x<-matrix(rep(x,each=n),nrow=n);
y<-matrix(rep(y,m),nrow=n)
22向量元素掉轉順序
v(end:-1:1)
rev(v)
23訪問矩陣a的列,如第二列
a(:, 2)
a[,2]#給出的結果是向量;
a[,2,drop=false]#結果是n×1的矩陣
24訪問矩陣a的行,如第七行
a(7, :)
a[7, ]#給出的結果是向量;
a[7, ,drop=false]#結果是1×m的矩陣
25將矩陣a「拉直」為向量
a(:)
c(a)
26提取子矩陣,如2-4行,3-6列
a(2:4,3:6)
a[2:4,3:6]
27提取特殊元素形成矩陣,如乙個3×2矩陣,包含行7,7,6,列2,1的元素
a([7 7 6],[2 1])
a[c(7,7,6),c(2,1)]
28按行掉轉矩陣元素順序
fliplr(a)
29按列掉轉矩陣元素順序
flipud(a)
30擷取向量v,如保留前10個元素
v=v(1:10)
v<-v[1:10]或
length(v)<-10
31擷取向量v元素,從a處開始至結尾
v=v(a:end)
v<-v[a:length(v)]
32擷取向量v中除k以外的所有元素
v=v(1:(k-1) (k+1):end)
v<-v[-k]
33擷取除k和j以外的所有元素
32中的方法
v<-v[c(-k, -j)]
34對矩陣a中的元素重新排成n行m列的新矩陣(a中必須有nm個元素)
a=reshape(a, n, m )
dim(a)=c(n, m)
35提取矩陣a的下三角矩陣
l=tril(a)
l<-a; l[upper.tri(a)]<-0
36提取矩陣a的上三角矩陣
u=triu(a)
u<-a; u[lower.tri(a)]<-0
37提取n×n的hilbert矩陣
hilb(n)
hilbert(n)
**需載入matrix庫
38構建n維陣列,如3×4×2
reshape(1:24, 3, 4, 2)或
reshape(1:24, [3 4 2])
array(1:24, c(3,2,4))
向量與矩陣範數
在剛入門機器學習中的低秩,稀疏模型時,被各種範數攪得一團糟,嚴重延緩了學習進度,經過一段時間的學習,現在將其完整的總結一下,希望遇到同樣麻煩的同學能有所幫助。首先定義乙個向量為 a 5,6,8,10 向量的1範數即 向量的各個元素的絕對值之和,上述向量a的1範數結果就是 29,matlab 實現為 ...
Matlab向量 矩陣基本操作
1 向量的建立 1 直接輸入 行向量 a 1,2,3,4,5 列向量 a 1 2 3 4 5 2 用 生成向量 a j k 生成的行向量是a j,j 1,k a j d k 生成行向量a j,j d,j m d m fix k j d 3 函式linspace 用來生成資料按等差形式排列的行向量 x...
MKL學習 矩陣向量操作
前面介紹的blas level 1是向量 向量的操作,而這裡的blas level 2主要還是對矩陣 向量之間的操作。命名規則與前面的一樣,主要記住定義的是資料型別 s實數域,單精度 c複數域,單精度 d實數域,雙精度 z複數域,雙精度 也可結合起來,比如sc代表實數域和複數域的單精度型別,dz代表...