Matlab R向量與矩陣操作

2022-07-19 02:00:15 字數 3049 閱讀 1335

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代表...