跳到主要內容

R語言翻轉教室-5【01-RBasic-05-Arrays-Matrices】


*建立一個型態為numeric,由1到18的向量。

seq(1,18)

*利用`matrix`這個函數來建立一個矩陣。舉例來說,就可以建立一個6 乘3 的矩陣。 請同學試試看,並把這個矩陣寫入變數x 。

x <- matrix(1:18, 6, 3)

利用attributes(x)可以看到以下結果:

$dim
[1] 6 3

這代表著x有一個名字叫做"dim"的屬性,值是`c(6, 3)`,代表這是一個6 乘3 的矩陣。

更高維度的矩陣 matrix(行 ,列,組)

舉例:

matrix(1:18,6,3) 也可以用這樣表示=> array(1:18, c(6,3))

     [,1] [,2] [,3]
[1,]    1    7   13
[2,]    2    8   14
[3,]    3    9   15
[4,]    4   10   16
[5,]    5   11   17
[6,]    6   12   18

dim(x) <- c(3,3,2)

cbind, rbind

cbind(matrix(1:4, 2, 2), matrix(1:4, 2,2))`會將兩個矩陣的行合併,運算之後會變成2 乘 4的矩陣。請同學試試看。

範例:
cbind(matrix(1:4, 2, 2),matrix(1:4, 2,2))

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

rbind(matrix(1:4, 2, 2),matrix(1:4, 2,2))

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

在R 中,線性代數運算的底層是透過BLAS等函式庫做運算的,所以效能遠勝過自己用C 寫的線性代數運算。 另外,R 預設的BLAS庫為比較被廣泛驗證過正確性的版本,而非效能比較快版本。 這是因為,R core Team認為正確性比較重要,所以目前是採用比較舊,但是也比較可靠的BLAS庫。

在R 中,要對一個矩陣做轉置,可以用`t`這個函數。

我們可以用diag快速建構對角化的矩陣。舉例來說:diag(1, 3)會建立出3 乘3 的單位矩陣。請試試看。

範例:
diag(1,3)

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

最後關卡63卡關

課程筆記參考: R語言翻轉教室

回家作業:連結

留言

這個網誌中的熱門文章

R 語言翻轉教室-2

Lesson 2 :  Object 入門操作 R的object結構是依照針對資料結構分析所設計的。 最簡單的object 即為 一串數字  。 一般程式語言最簡單的object則為 一個數字。 若要儲存一個向量到變數“x”當中: example: 要用R 建立一個內容為10.4, 5.6, 3.1和6.4的向量, 最常用的方式就是輸入:`c(10.4, 5.6, 3.1, 6.4)` 請同學依照這樣的語法建立一個這樣的向量,並且把它存為變數x。 Ans:x <- c(10.4, 5.6, 3.1, 6.4) 欲求出變數向量的最大最小值: c(min(x), max(x)) 欲求出範圍: range(x) 欲求出向量平均: sum(x)/length(x)(總和/向量長度)

R語言翻轉教室-3【01-RBasic-03-Data-Structure-Object】

*R的物件結構 組成R語言的基本物件結構為「向量」。 向量物件有兩個很重要的屬性: `mode`和`length`。 `mode`代表這個向量的值型態,總共有:`logical`、`integer`、`numeric`、`complex`、`character`和`raw`。 `length`則代表這個向量中值的個數。 list可以裝所有R的物件 所有的R物件都有「屬性」 所有R 物件的attributes都是帶有名字的list。 本課程筆記,出處: R語言翻轉教室 回家作業: 連結

【 Android Development for Beginners】 Lesson 3A : Object Oriented Programming - 4

(I think Lesson 3A is the most important but also the most difficult part for beginner so far ) This Notes is according to the udacity free course : Android Development for Beginners Lesson 3A : Object Oriented Programming Call Method on an objects If We want to call a method on an object object variable name . method name ( input argument ); ex: titleTextView.setText("News"); You need to make sure you put a right object so you can call the method