Download - 18. Two-Dimensional Arrays
![Page 1: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/1.jpg)
Insight Through Computing
18. Two-Dimensional Arrays
Set-UpRows and ColumnsSubscriptingOperationsExamples
![Page 2: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/2.jpg)
Insight Through Computing
2-d array: matrix
An array is a named collection of like data organized into rows and columns
• A 2-d array is a table, called a matrix• Two indices identify the position of a value in a
matrix, e.g.,mat(r,c)
refers to component in row r, column c of matrix mat
• Array index starts at 1• Rectangular: all rows have the same #of columns
c
r
![Page 3: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/3.jpg)
Insight Through Computing
Simple Set-Up Examples
>> A = [1 2 3; 4 5 6]A = 1 2 3 4 5 6
![Page 4: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/4.jpg)
Insight Through Computing
Simple Set-Up Examples
>> A = zeros(3,4)A = 0 0 0 0 0 0 0 0 0 0 0 0
![Page 5: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/5.jpg)
Insight Through Computing
Simple Set-Up Examples
>> A = floor(100*rand(5,5))A = 95 76 61 40 5 23 45 79 93 35 60 1 92 91 81 48 82 73 41 0 89 44 17 89 13
![Page 6: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/6.jpg)
Insight Through Computing
Simple Set-Up Examples
>> A = [zeros(3,2) [1;2;3]]A = 0 0 1 0 0 2 0 0 3
![Page 7: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/7.jpg)
Insight Through Computing
Simple Set-Up Examples
>> A = [zeros(3,2) ; [1 2] ]A = 0 0 0 0 0 0 1 2
![Page 8: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/8.jpg)
Insight Through Computing
Rows and Columns
12 17 49 61
38 18 82 77
83 53 12 10
A:
A is a 3-by-4 array: 3 rows 4 columns.
row 1
row 2
row 3col 4
col 3
col 2
col 1
![Page 9: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/9.jpg)
Insight Through Computing
Subscripting
12 17 49 61
38 18 82 77
83 53 12 10
A:
Individual entries: A(3,2)
![Page 10: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/10.jpg)
Insight Through Computing
Subscripting
12 17 49 61
38 18 82 77
83 53 12 10
A:
An Entire Row: A(2,:)
![Page 11: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/11.jpg)
Insight Through Computing
Scaling a Row
12 17 49 61
10 20 30 40
83 53 12 10
A:
A(2,:) = 10*A(2,:)
12 17 49 61
1 2 3 4
83 53 12 10
A:
Before After
![Page 12: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/12.jpg)
Insight Through Computing
Subscripting
12 17 49 61
38 18 82 77
83 53 12 10
A:
An Entire Column: A(:,3)
![Page 13: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/13.jpg)
Insight Through Computing
Incrementing the Values in a Column
12 17 49 61
38 18 82 77
83 53 12 10
A:
A(:,3) = A(:,3) + 1
12 17 50 61
38 18 83 77
83 53 13 10
A:
Before After
![Page 14: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/14.jpg)
Insight Through Computing
Subscripting
12 17 49 61
38 18 82 77
83 53 12 10
A:
A General Subarray: A(2:3,3:4)
![Page 15: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/15.jpg)
Insight Through Computing
Zeroing a Subarray
12 17 49 61
38 18 82 77
83 53 12 10
A:
A(2:3,3:4) = zeros(2,2)
12 17 49 61
38 18 0 0
83 53 0 0
A:
Before After
![Page 16: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/16.jpg)
Insight Through Computing
Classical Double Loop Set-Up
11 21 31 41
12 22 32 42
13 23 33 43
A:
for i=1:3
for j=1:4
A(i,j) = 10*j + i;
end
end
![Page 17: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/17.jpg)
Insight Through Computing
Set-Up By Row
11 21 31 41
12 22 32 42
13 23 33 43
A:
A = [];
for i=1:3
v = [10 20 30 40] + i;
A = [A ; v]
end
![Page 18: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/18.jpg)
Insight Through Computing
Set-Up By Column
11 21 31 41
12 22 32 42
13 23 33 43
A:
A = [];
for j=1:4
v = 10*j + [1;2;3];
A = [A v]
end
![Page 19: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/19.jpg)
Insight Through Computing
Question Time
A = [ 1 2 3; 4 5 6];C = A(:,2);
What the value of A(2,2)?
A. 4 B. 5 C. 6
![Page 20: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/20.jpg)
Insight Through Computing
Question Time
A = [ 1 2 3; 4 5 6];A = A(1:2,2:3)
What the value of A(2,2)?
A. 4 B. 5 C. 6
![Page 21: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/21.jpg)
Insight Through Computing
Largest Value
12 17 49 61
38 18 82 77
83 53 12 10
A:
m = max(A) ; M = max(m)
83 53 82 77m: M: 83
![Page 22: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/22.jpg)
Insight Through Computing
Functions and 2D Arrays
function alpha = Ave(A)% A is a 2D array.% alpha is the average of its% values.
10 20 30 40 50 60
-> (10+20+30+40+50+60)/6
![Page 23: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/23.jpg)
Insight Through Computing
Need Built-In Function size
function alpha = Ave(A) [m,n] = size(A); Add up all the numbers in the array. Store in s.
alpha = s/(m*n);
size(A) returns #rows and # columns
![Page 24: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/24.jpg)
Insight Through Computing
Refine…
function alpha = Ave(A) [m,n] = size(A); s = 0; for i=1:m
sRow = the sum of the values in A(i,:)
s = s + sRow end alpha = s/(m*n);
![Page 25: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/25.jpg)
Insight Through Computing
sRow = the sum of the values in A(i,:)
sRow = 0;for j=1:n sRow = sRow + A(i,j);end
![Page 26: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/26.jpg)
Insight Through Computing
function alpha = Ave(A) [m,n] = size(A); s = 0; for i=1:m
s = s + sRow end alpha = s/(m*n);
sRow = 0;for j=1:n sRow = sRow + A(i,j);end
![Page 27: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/27.jpg)
Insight Through Computing
Now Some More Involved Examples
![Page 28: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/28.jpg)
Insight Through Computing
Random Web
N web pages
N-by-N Link Array A.
A(i,j) is 1 if there is a link on webpage j to webpage i
Generate a random link array and display the connectivity.
![Page 29: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/29.jpg)
Insight Through Computing
Random Link Idea
A(i,,j) = 1 with probability
More likely to be a link if i is close to j.
||11ji
![Page 30: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/30.jpg)
Insight Through Computing
function A = RandomLinks(n) A = zeros(n,n);for i=1:n for j=1:n r = rand; if i~=j && r<= 1/(1 + abs(i-j)); A(i,j) = 1; end endend
![Page 31: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/31.jpg)
Insight Through Computing
0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
N = 20
![Page 32: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/32.jpg)
Insight Through Computing
100 Web pages. Now display the links….
![Page 33: 18. Two-Dimensional Arrays](https://reader036.vdocuments.us/reader036/viewer/2022081419/56815a9f550346895dc8272b/html5/thumbnails/33.jpg)
Insight Through Computing
Line black as it leaves page j, red when it arrives at page i.