大神們,小弟問下R語言中向量變矩陣問題

時間 2021-10-30 06:25:46

1樓:萇燁用香彤

m<-matrix(n[1:3],n[2:4],n[3:

5],n[4:6],n[5:7],n[6:

8],n[7:緝常光端叱得癸全含戶9],n[8:10],nrow=3)

2樓:董鵬程

m<-matrix(n[1:3],n[2:4],n[3:5],n[4:6],n[5:7],n[6:8],n[7:9],n[8:10],nrow=3)

3樓:邢小行要回家

舉例說明

index <- null

for(i in 1:8)

> index

[1] 1 2 3 2 3 4 3 4 5 4 5 6 5 6 7 6 7 8 7 8 9 8 9 10

> ( n <- paste0("x",1:10) )[1] "x1" "x2" "x3" "x4" "x5" "x6" "x7" "x8" "x9" "x10"

> ( matrix(n[index],ncol=3,byrow=t) )

[,1] [,2] [,3]

[1,] "x1" "x2" "x3"

[2,] "x2" "x3" "x4"

[3,] "x3" "x4" "x5"

[4,] "x4" "x5" "x6"

[5,] "x5" "x6" "x7"

[6,] "x6" "x7" "x8"

[7,] "x7" "x8" "x9"

[8,] "x8" "x9" "x10"

是要這樣的效果嗎

r語言中求出了a,b,c,d四個向量,每個向量含有三個資料,合併成矩陣怎麼表示啊

4樓:匿名使用者

用cbind()吧。

比如:x<-cbind(a,b,c,d)

如果都存在一個list(比如叫data)裡的話還可以

r語言裡,如何將向量中的確實值用另一個向量替換?

5樓:匿名使用者

x <- c(1,2,3,na,4,na,6,7,8)

y <- c(6,5,4)

x[is.na(x)] <- y[1]#用y向量中的第一個值替換x中的缺失值

r語言中怎麼尋找最小值所在位置

6樓:

which.min()

# 例子

> x <- sample(10)

> x[1]  9  8  1  5  6  2  3  4  7 10> which.min(x)

[1] 3

如何用r軟體或excel來求矩陣的特徵值和特徵向量丫,跪求大神~

7樓:善良的獨孤風雪

用excel求解矩陣特徵值與特徵向量,可以按以下方法辦理:

1、求矩陣的特徵值和特徵向量是一個既基礎又重要的數值計算問題。通常我們可以用編寫高階語言程式的方法加以解決,也可以使用專門的數學軟體(如matlab等)來實現。本文給出的用excel實現求矩陣的特徵值和特徵向量的方法,既不需要設計程式,也不需要專門的數學軟體,只須在excel中進行簡單操作,就可以快速、直觀地得到實矩陣的特徵值和特徵向量,且計算結果具有較高的精度。

2、在excel中利用陣列公式和陣列常量建立並命名矩陣:

在excel中,可以在一個單元格區域內通過逐個輸入矩陣的各個元素來建立矩陣,還可以使用陣列公式和陣列常量更加方便地建立矩陣[1]。例如,可以通過下列操作建立矩陣:

(1) 在excel的工作表sheet1中,選擇單元格區域a1:d4;

(2) 輸入公式:=(順便指出:在excel的陣列公式中,將矩陣元素用大括號{}括起來稱為陣列常量,其中不同列的元素用逗號隔開,不同行的元素用分號隔開;

(3) 按ctrl+shift+enter鍵,結束陣列公式的輸入,形成矩陣。

建立了矩陣之後,在excel的陣列公式中,就可以用矩陣所在的單元格區域a1:d4表示該矩陣;但若將該矩陣命名為a顯然更便於使用,也便於理解公式的含義,方法如下:

選擇該矩陣所在的單元格區域a1:d4;單擊編輯欄左端的「名稱」框,輸入a,按回車鍵確認。此後,在當前工作薄的所有工作表中,就可以使用名稱a在陣列公式中代表該矩陣。

尤其需要指出的是:通過對矩陣命名,不僅能方便地實現跨工作表引用單元格區域,而且更重要的是:在複製公式時,excel將名稱(如a)按常量對待,所以更便於矩陣的運算和使用。

類似地,我們還可以在單元格區域f1:i4中通過輸入陣列公式:}建立4階單位矩陣,並命名為i。

3、利用excel求矩陣的特徵值:

由於矩陣a的特徵值λ就是特徵方程det(a-λi)的根,因此可以利用excel工具選單中的「單變數求解」命令求矩陣的特徵值。

例如,上述矩陣a在0.4附近的特徵值的求解方法如下:

(1) 在a6單元格中輸入值0.4;

(2) 在b6單元格中輸入公式:=mdeterm(a-a6*i)=0,其中mdeterm為excel提供的求矩陣行列式的函式;

(3) 按ctrl+shift+enter鍵,形成陣列公式:,於是b6單元格中的值0.1264即為特徵多項式在 的值;

(4) 單擊「工具」選單中的「單變數求解」命令,開啟「單變數求解」對話方塊;

(5) 在「目標單元格(e)」中輸入或選擇b6,在「目標值(v)」中輸入0,在「可變單元格(c)」中輸入或選擇a6;

(6) 單擊「確定」按鈕。

此時,a6單元格中的值0.381966011就是矩陣a在0.4附近特徵值的近似值(順便指出:

在excel「選項」對話方塊的「重新計算」選項卡中,通過設定「迭代計算」欄還可控制計算精度)。

4、求特徵值對應的特徵向量:

所謂逆冪法,就是取a的特徵值λi的一個近似值λ,並取非零初始向量x0,按迭代公式: (其中符號‖·‖∞代表向量的按模最大分量,即) 進行迭代,當相鄰兩次迭代,xk-1,xk近似成比例時,則xk即為矩陣a對應於特徵值λi的近似特徵向量。

例如,為求上例矩陣a的特徵值λ=0.381966011對應的特徵向量,我們取近似特徵值為0.38,並取初始向量為(1,1,1,1),使用逆冪法進行迭代可以在excel中進行如下操作:

(1) 在工作表sheet2中,先在單元格區域a1:a4中輸入1,1,1,1形成初始向量x0;

(2) 選擇單元格區域b1:b4,輸入公式:=mmult(minverse(a-0.

38*i), a1:a4),按ctrl+shift+enter鍵,形成陣列公式計算出y1 (注:其中minverse, mmult分別為excel提供的計算逆矩陣和計算兩個矩陣乘積的函式);

(3) 在b5單元格中輸入公式:=max(abs(b1:b4)),按ctrl+shift+enter鍵,形成陣列公式計算出‖y1‖∞;

(4) 選擇單元格區域c1:c4,輸入公式:=b1:

b4/b5,按ctrl+shift+enter鍵,形成陣列公式計算出逆冪法迭代一次後的向量x1=(0.618321,1,1,0.618321);

(5) 選擇b1:c5單元格區域,向右拖動c5右下角的填充柄,即得逆冪法的迭代序列:

逆冪法迭代3次,可得a的對應於近似特徵值λ=0.381966011的近似特徵向量為(0.618033989,1,1,0.

618033989)。若與a的相應精確特徵值λ=2-2cos(π/5)=0.3819660112…和特徵向量(sin(π/5)/sin(2π/5),1,1,sin(π/5)/sin(2π/5))=(0.

6180339887…,1,1,0.6180339887…)相比較,顯然已具有較高的精度。

8樓:匿名使用者

在r中,函式eigen(sm) 用來計算矩陣sm 的特徵值和特徵向量

r語言,限定條件找矩陣下標。

9樓:誰都別攔我學習

> m[,1] [,2]

[1,]    3   -1

[2,]    2    1

[3,]    1    1

> which(m[,1]==max(m[m[,2]==1,1]))[1] 2

10樓:匿名使用者

m<-which(m[,2]==1 & m[,1]==max(m[m[,2]==1,1]))

R語言中是什麼意思,R語言程式碼裡的英文句號“ ”有什麼含義麼

風翼殘念 是s3類的引用方式,是s4類的引用方式。比較常用,比較少用。通常我們的data.frame,list.向量等用 就可以。s4也有例如,有個維恩包vennerable s4型別,想取得裡面intersectionsets,資訊必須用 符號。當一個函式裡需要返回多個值 比如有變數,有向量,有矩...

R語言中怎樣將資料框轉換成矩陣,R語言把大量記錄型資料轉換成矩陣

胖美美 1 以讀入txt格式的資料為例子,第一步開啟r軟體包,讀入資料,如下圖所示 2 使用轉換矩陣命令as.matrix 使讀入的資料變成矩陣格式,如下圖所示 3 驗證是否轉換成功,命令is.matrix 返回true表示轉換成功,如下圖所示 首先要保證資料框中資料是同一型別的,然後as.matr...

小弟菜鳥,Verilog語言中,類似5d8具體怎麼理解

來自度假村佔盡風流的螢石 你在google上搜verilog number literals.pdf 詳細介紹verilog數字方面的語法 關於你這裡的問題 解釋是 the number of binary bits the number is comprised of.not the number...