06 Matrices
105791.rar
(1017 Bytes)
本附件包括:
> ################## 06 Matrices ###########################
> ### Matrices
> ### Creating Matrices
> matrix(1:6, nrow = 3, ncol = 2)
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> matrix(1:6, nrow = 3, ncol = 2, byrow = TRUE)
[,1] [,2]
[1,] 1 2
[2,] 3 4
[3,] 5 6
> ### Matrix Elements and Recycling
> matrix(1, nrow = 2, ncol = 3)
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
> ### Optional Dimension Specifications
> matrix(1:6, nrow = 3)
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> ### Determining Matrix Dimensions
> x = matrix(1:6, nc = 2)
> x
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> nrow(x)
[1] 3
> ncol(x)
[1] 2
> dim(x)
[1] 3 2
> ### Creating Matrices from Rows and Columns
> cbind(1:3, 4:6)
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> rbind(1:3, 4:6)
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
> ### Binding Rows and Columns; Recycling
> rbind(1:2, 1:3)
[,1] [,2] [,3]
[1,] 1 2 1
[2,] 1 2 3
Warning message:
number of columns of result
is not a multiple of vector length (arg 1) in: rbind(1, 1:2, 1:3)
> ### Matrices and Naming
> x = matrix(1:6, nrow = 2)
> dimnames(x) = list(c("First", "Second"), c("A", "B", "C"))
> x
A B C
First 1 3 5
Second 2 4 6
> ### Extracting Names
> dimnames(x)
[[1]]
[1] "First" "Second"
[[2]]
[1] "A" "B" "C"
> rownames(x)
[1] "First" "Second"
> colnames(x)
[1] "A" "B" "C"
> ### Extracting Matrix Elements
> s = 0
> x=matrix(1:12,3,4)
> for(i in 1:nrow(x))
+ for(j in 1:ncol(x))
+ s = s + x[i, j]
> s
[1] 78
> s = sum(x)
> s
[1] 78
> ### Matrix Subsets
> x = matrix(1:12, nrow = 3, ncol = 4)
> x
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
> x[1:2, c(2, 4)]
[,1] [,2]
[1,] 4 10
[2,] 5 11
> ### Assigning to Matrix Subsets
> x[1:2, c(2, 4)] = 21:24
> x
[,1] [,2] [,3] [,4]
[1,] 1 21 7 23
[2,] 2 22 8 24
[3,] 3 6 9 12
> x[2:1, c(2, 4)] = 21:24
> x
[,1] [,2] [,3] [,4]
[1,] 1 22 7 24
[2,] 2 21 8 23
[3,] 3 6 9 12
> ### Specifying Entire Rows and Columns
> x = matrix(1:12, nrow = 3, ncol = 4)
> x[1,] = 100
> x
[,1] [,2] [,3] [,4]
[1,] 100 100 100 100
[2,] 2 5 8 11
[3,] 3 6 9 12
> ### Subsetting Matrices as Vectors
> x = matrix(1:6, nrow = 2, ncol = 3)
> x[7]
[1] NA
> row(x)
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 2 2 2
> col(x)
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 1 2 3
> x[row(x) < col(x)] = 0
> x
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 2 4 0
> ### An Example
> x = matrix(0, nrow = 4, ncol = 4)
> x[row(x) == col(x)] = 2
> x[abs(row(x) - col(x)) == 1] = 1
> x
[,1] [,2] [,3] [,4]
[1,] 2 1 0 0
[2,] 1 2 1 0
[3,] 0 1 2 1
[4,] 0 0 1 2
> ### Simple Computations with Matrices
> x = matrix(1:4, nrow = 2, ncol = 2)
> x
[,1] [,2]
[1,] 1 3
[2,] 2 4
> x + x^2
[,1] [,2]
[1,] 2 12
[2,] 6 20
> ### Combining Vectors and Matrices
> x + 1:3
[,1] [,2]
[1,] 2 6
[2,] 4 5
Warning message:
longer object length
is not a multiple of shorter object length in: x + 1:3
> ### Row and Column Summaries
> x=matrix(1:12, 3, 4)
> rm = numeric(nrow(x))
> for(i in 1:nrow(x))
+ rm = mean(x[i,])
> rm
[1] 5.5 6.5 7.5
> ### The “Apply” Mechanism
> ### Computing Row and Column Means
> apply(x, 1, mean)
[1] 5.5 6.5 7.5
> apply(x, 2, mean)
[1] 2 5 8 11
> apply(x, 1, sd)
[1] 3.872983 3.872983 3.872983
> ### Apply and Anonymous Functions
> apply(x, 2, function(x) sum(x^2))
[1] 14 77 194 365
> apply(x, 2, function(x) sum((x - mean(x))^2))
[1] 2 2 2 2
> ### More Complex Summaries
> apply(x, 1, range)
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 10 11 12
> apply(x, 2, range)
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 3 6 9 12
> ### Additional Arguments to Summaries
> ### Sweeping Out Summaries
> ### Other Forms of Sweeping
> x = cbind(1:3, 9:11)
> x
[,1] [,2]
[1,] 1 9
[2,] 2 10
[3,] 3 11
> sweep(x, 2, apply(x, 2, mean), "/")
[,1] [,2]
[1,] 0.5 0.9
[2,] 1.0 1.0
[3,] 1.5 1.1
> ### Matrix Transposes
> x = cbind(1:3, 11:13)
> x
[,1] [,2]
[1,] 1 11
[2,] 2 12
[3,] 3 13
> t(x)
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 11 12 13
> ### Matrix Products
> ### (Generalized) Outer Products
> ### A Graphics Example
> x = seq(-1, 1, length = 25)
> y = x
> x
[1] -1.00000000 -0.91666667 -0.83333333 -0.75000000 -0.66666667 -0.58333333
[7] -0.50000000 -0.41666667 -0.33333333 -0.25000000 -0.16666667 -0.08333333
[13] 0.00000000 0.08333333 0.16666667 0.25000000 0.33333333 0.41666667
[19] 0.50000000 0.58333333 0.66666667 0.75000000 0.83333333 0.91666667
[25] 1.00000000
> z = outer(x, y, function(u, v) u^2-v^2)
> z
[,1] [,2] [,3] [,4] [,5]
[1,] 0.0000000 1.597222e-01 3.055556e-01 0.4375000 5.555556e-01
[2,] -0.1597222 0.000000e+00 1.458333e-01 0.2777778 3.958333e-01
[3,] -0.3055556 -1.458333e-01 0.000000e+00 0.1319444 2.500000e-01
[4,] -0.4375000 -2.777778e-01 -1.319444e-01 0.0000000 1.180556e-01
[5,] -0.5555556 -3.958333e-01 -2.500000e-01 -0.1180556 0.000000e+00
[6,] -0.6597222 -5.000000e-01 -3.541667e-01 -0.2222222 -1.041667e-01
[7,] -0.7500000 -5.902778e-01 -4.444444e-01 -0.3125000 -1.944444e-01
[8,] -0.8263889 -6.666667e-01 -5.208333e-01 -0.3888889 -2.708333e-01
[9,] -0.8888889 -7.291667e-01 -5.833333e-01 -0.4513889 -3.333333e-01
[10,] -0.9375000 -7.777778e-01 -6.319444e-01 -0.5000000 -3.819444e-01
[11,] -0.9722222 -8.125000e-01 -6.666667e-01 -0.5347222 -4.166667e-01
[12,] -0.9930556 -8.333333e-01 -6.875000e-01 -0.5555556 -4.375000e-01
[13,] -1.0000000 -8.402778e-01 -6.944444e-01 -0.5625000 -4.444444e-01
[14,] -0.9930556 -8.333333e-01 -6.875000e-01 -0.5555556 -4.375000e-01
[15,] -0.9722222 -8.125000e-01 -6.666667e-01 -0.5347222 -4.166667e-01
[16,] -0.9375000 -7.777778e-01 -6.319444e-01 -0.5000000 -3.819444e-01
[17,] -0.8888889 -7.291667e-01 -5.833333e-01 -0.4513889 -3.333333e-01
[18,] -0.8263889 -6.666667e-01 -5.208333e-01 -0.3888889 -2.708333e-01
[19,] -0.7500000 -5.902778e-01 -4.444444e-01 -0.3125000 -1.944444e-01
[20,] -0.6597222 -5.000000e-01 -3.541667e-01 -0.2222222 -1.041667e-01
[21,] -0.5555556 -3.958333e-01 -2.500000e-01 -0.1180556 -2.775558e-16
[22,] -0.4375000 -2.777778e-01 -1.319444e-01 0.0000000 1.180556e-01
[23,] -0.3055556 -1.458333e-01 -2.220446e-16 0.1319444 2.500000e-01
[24,] -0.1597222 -2.220446e-16 1.458333e-01 0.2777778 3.958333e-01
[25,] 0.0000000 1.597222e-01 3.055556e-01 0.4375000 5.555556e-01
[,6] [,7] [,8] [,9] [,10]
[1,] 6.597222e-01 0.75000000 8.263889e-01 8.888889e-01 0.93750000
[2,] 5.000000e-01 0.59027778 6.666667e-01 7.291667e-01 0.77777778
[3,] 3.541667e-01 0.44444444 5.208333e-01 5.833333e-01 0.63194444
[4,] 2.222222e-01 0.31250000 3.888889e-01 4.513889e-01 0.50000000
[5,] 1.041667e-01 0.19444444 2.708333e-01 3.333333e-01 0.38194444
[6,] 0.000000e+00 0.09027778 1.666667e-01 2.291667e-01 0.27777778
[7,] -9.027778e-02 0.00000000 7.638889e-02 1.388889e-01 0.18750000
[8,] -1.666667e-01 -0.07638889 0.000000e+00 6.250000e-02 0.11111111
[9,] -2.291667e-01 -0.13888889 -6.250000e-02 0.000000e+00 0.04861111
[10,] -2.777778e-01 -0.18750000 -1.111111e-01 -4.861111e-02 0.00000000
[11,] -3.125000e-01 -0.22222222 -1.458333e-01 -8.333333e-02 -0.03472222
[12,] -3.333333e-01 -0.24305556 -1.666667e-01 -1.041667e-01 -0.05555556
[13,] -3.402778e-01 -0.25000000 -1.736111e-01 -1.111111e-01 -0.06250000
[14,] -3.333333e-01 -0.24305556 -1.666667e-01 -1.041667e-01 -0.05555556
[15,] -3.125000e-01 -0.22222222 -1.458333e-01 -8.333333e-02 -0.03472222
[16,] -2.777778e-01 -0.18750000 -1.111111e-01 -4.861111e-02 0.00000000
[17,] -2.291667e-01 -0.13888889 -6.250000e-02 -6.938894e-17 0.04861111
[18,] -1.666667e-01 -0.07638889 -1.665335e-16 6.250000e-02 0.11111111
[19,] -9.027778e-02 0.00000000 7.638889e-02 1.388889e-01 0.18750000
[20,] -1.665335e-16 0.09027778 1.666667e-01 2.291667e-01 0.27777778
[21,] 1.041667e-01 0.19444444 2.708333e-01 3.333333e-01 0.38194444
[22,] 2.222222e-01 0.31250000 3.888889e-01 4.513889e-01 0.50000000
[23,] 3.541667e-01 0.44444444 5.208333e-01 5.833333e-01 0.63194444
[24,] 5.000000e-01 0.59027778 6.666667e-01 7.291667e-01 0.77777778
[25,] 6.597222e-01 0.75000000 8.263889e-01 8.888889e-01 0.93750000
[,11] [,12] [,13] [,14] [,15]
[1,] 9.722222e-01 9.930556e-01 1.000000000 9.930556e-01 9.722222e-01
[2,] 8.125000e-01 8.333333e-01 0.840277778 8.333333e-01 8.125000e-01
[3,] 6.666667e-01 6.875000e-01 0.694444444 6.875000e-01 6.666667e-01
[4,] 5.347222e-01 5.555556e-01 0.562500000 5.555556e-01 5.347222e-01
[5,] 4.166667e-01 4.375000e-01 0.444444444 4.375000e-01 4.166667e-01
[6,] 3.125000e-01 3.333333e-01 0.340277778 3.333333e-01 3.125000e-01
[7,] 2.222222e-01 2.430556e-01 0.250000000 2.430556e-01 2.222222e-01
[8,] 1.458333e-01 1.666667e-01 0.173611111 1.666667e-01 1.458333e-01
[9,] 8.333333e-02 1.041667e-01 0.111111111 1.041667e-01 8.333333e-02
[10,] 3.472222e-02 5.555556e-02 0.062500000 5.555556e-02 3.472222e-02
[11,] 0.000000e+00 2.083333e-02 0.027777778 2.083333e-02 7.632783e-17
[12,] -2.083333e-02 0.000000e+00 0.006944444 1.908196e-17 -2.083333e-02
[13,] -2.777778e-02 -6.944444e-03 0.000000000 -6.944444e-03 -2.777778e-02
[14,] -2.083333e-02 -1.908196e-17 0.006944444 0.000000e+00 -2.083333e-02
[15,] -7.632783e-17 2.083333e-02 0.027777778 2.083333e-02 0.000000e+00
[16,] 3.472222e-02 5.555556e-02 0.062500000 5.555556e-02 3.472222e-02
[17,] 8.333333e-02 1.041667e-01 0.111111111 1.041667e-01 8.333333e-02
[18,] 1.458333e-01 1.666667e-01 0.173611111 1.666667e-01 1.458333e-01
[19,] 2.222222e-01 2.430556e-01 0.250000000 2.430556e-01 2.222222e-01
[20,] 3.125000e-01 3.333333e-01 0.340277778 3.333333e-01 3.125000e-01
[21,] 4.166667e-01 4.375000e-01 0.444444444 4.375000e-01 4.166667e-01
[22,] 5.347222e-01 5.555556e-01 0.562500000 5.555556e-01 5.347222e-01
[23,] 6.666667e-01 6.875000e-01 0.694444444 6.875000e-01 6.666667e-01
[24,] 8.125000e-01 8.333333e-01 0.840277778 8.333333e-01 8.125000e-01
[25,] 9.722222e-01 9.930556e-01 1.000000000 9.930556e-01 9.722222e-01
[,16] [,17] [,18] [,19] [,20]
[1,] 0.93750000 8.888889e-01 8.263889e-01 0.75000000 6.597222e-01
[2,] 0.77777778 7.291667e-01 6.666667e-01 0.59027778 5.000000e-01
[3,] 0.63194444 5.833333e-01 5.208333e-01 0.44444444 3.541667e-01
[4,] 0.50000000 4.513889e-01 3.888889e-01 0.31250000 2.222222e-01
[5,] 0.38194444 3.333333e-01 2.708333e-01 0.19444444 1.041667e-01
[6,] 0.27777778 2.291667e-01 1.666667e-01 0.09027778 1.665335e-16
[7,] 0.18750000 1.388889e-01 7.638889e-02 0.00000000 -9.027778e-02
[8,] 0.11111111 6.250000e-02 1.665335e-16 -0.07638889 -1.666667e-01
[9,] 0.04861111 6.938894e-17 -6.250000e-02 -0.13888889 -2.291667e-01
[10,] 0.00000000 -4.861111e-02 -1.111111e-01 -0.18750000 -2.777778e-01
[11,] -0.03472222 -8.333333e-02 -1.458333e-01 -0.22222222 -3.125000e-01
[12,] -0.05555556 -1.041667e-01 -1.666667e-01 -0.24305556 -3.333333e-01
[13,] -0.06250000 -1.111111e-01 -1.736111e-01 -0.25000000 -3.402778e-01
[14,] -0.05555556 -1.041667e-01 -1.666667e-01 -0.24305556 -3.333333e-01
[15,] -0.03472222 -8.333333e-02 -1.458333e-01 -0.22222222 -3.125000e-01
[16,] 0.00000000 -4.861111e-02 -1.111111e-01 -0.18750000 -2.777778e-01
[17,] 0.04861111 0.000000e+00 -6.250000e-02 -0.13888889 -2.291667e-01
[18,] 0.11111111 6.250000e-02 0.000000e+00 -0.07638889 -1.666667e-01
[19,] 0.18750000 1.388889e-01 7.638889e-02 0.00000000 -9.027778e-02
[20,] 0.27777778 2.291667e-01 1.666667e-01 0.09027778 0.000000e+00
[21,] 0.38194444 3.333333e-01 2.708333e-01 0.19444444 1.041667e-01
[22,] 0.50000000 4.513889e-01 3.888889e-01 0.31250000 2.222222e-01
[23,] 0.63194444 5.833333e-01 5.208333e-01 0.44444444 3.541667e-01
[24,] 0.77777778 7.291667e-01 6.666667e-01 0.59027778 5.000000e-01
[25,] 0.93750000 8.888889e-01 8.263889e-01 0.75000000 6.597222e-01
[,21] [,22] [,23] [,24] [,25]
[1,] 5.555556e-01 0.4375000 3.055556e-01 1.597222e-01 0.0000000
[2,] 3.958333e-01 0.2777778 1.458333e-01 2.220446e-16 -0.1597222
[3,] 2.500000e-01 0.1319444 2.220446e-16 -1.458333e-01 -0.3055556
[4,] 1.180556e-01 0.0000000 -1.319444e-01 -2.777778e-01 -0.4375000
[5,] 2.775558e-16 -0.1180556 -2.500000e-01 -3.958333e-01 -0.5555556
[6,] -1.041667e-01 -0.2222222 -3.541667e-01 -5.000000e-01 -0.6597222
[7,] -1.944444e-01 -0.3125000 -4.444444e-01 -5.902778e-01 -0.7500000
[8,] -2.708333e-01 -0.3888889 -5.208333e-01 -6.666667e-01 -0.8263889
[9,] -3.333333e-01 -0.4513889 -5.833333e-01 -7.291667e-01 -0.8888889
[10,] -3.819444e-01 -0.5000000 -6.319444e-01 -7.777778e-01 -0.9375000
[11,] -4.166667e-01 -0.5347222 -6.666667e-01 -8.125000e-01 -0.9722222
[12,] -4.375000e-01 -0.5555556 -6.875000e-01 -8.333333e-01 -0.9930556
[13,] -4.444444e-01 -0.5625000 -6.944444e-01 -8.402778e-01 -1.0000000
[14,] -4.375000e-01 -0.5555556 -6.875000e-01 -8.333333e-01 -0.9930556
[15,] -4.166667e-01 -0.5347222 -6.666667e-01 -8.125000e-01 -0.9722222
[16,] -3.819444e-01 -0.5000000 -6.319444e-01 -7.777778e-01 -0.9375000
[17,] -3.333333e-01 -0.4513889 -5.833333e-01 -7.291667e-01 -0.8888889
[18,] -2.708333e-01 -0.3888889 -5.208333e-01 -6.666667e-01 -0.8263889
[19,] -1.944444e-01 -0.3125000 -4.444444e-01 -5.902778e-01 -0.7500000
[20,] -1.041667e-01 -0.2222222 -3.541667e-01 -5.000000e-01 -0.6597222
[21,] 0.000000e+00 -0.1180556 -2.500000e-01 -3.958333e-01 -0.5555556
[22,] 1.180556e-01 0.0000000 -1.319444e-01 -2.777778e-01 -0.4375000
[23,] 2.500000e-01 0.1319444 0.000000e+00 -1.458333e-01 -0.3055556
[24,] 3.958333e-01 0.2777778 1.458333e-01 0.000000e+00 -0.1597222
[25,] 5.555556e-01 0.4375000 3.055556e-01 1.597222e-01 0.0000000
> persp(x, y, z, theta = 30, phi = 10)
[此贴子已经被作者于2007-4-6 8:33:48编辑过]