Suppose I first execute the following in Octave/Matlab:
A = [1 2; 3 4; 5 6];
B = [1 2 3; 4 5 6];
Which of the following are then valid commands?
Check all that apply. (Hint: A’ denotes the transpose of A.)
Let A=⎡⎣⎢⎢⎢16594211714310615138121⎤⎦⎥⎥⎥
Which of the following indexing expressions gives B=⎡⎣⎢⎢⎢16594211714⎤⎦⎥⎥⎥ ? Check all that apply.
Let A be a 10x10 matrix andx be a 10-element vector. Your friend wants to compute the product Ax and writes the following code:
v = zeros(10, 1);
for i = 1:10
for j = 1:10
v(i) = v(i) + A(i, j) * x(j);
end
end
How would you vectorize this code to run without any for loops? Check all that apply.
Say you have two column vectors v and w, each with 7 elements (i.e., they have dimensions 7x1). Consider the following code:
z = 0;
for i = 1:7
z = z + v(i) * w(i)
end
Which of the following vectorizations correctly compute z? Check all that apply.
** 答案: 1
v是7x1 w是7x1, 上述代码的最终的结果是一个数值
选项1: v=[1 2 3] w=[4 5 6] v.*w= [4 10 18],再对[4 10 18]求和. 正确
选项2: w转置是1x7,v是7x1, 则v*w是一个数值. 正确
选项3: v是7x1, w转置是1x7,则v*w是7x7的矩阵. 不正确
选项4: w是7x1, v转置是1x7, 则v*w是7x7的矩阵. 不正确
**
In Octave/Matlab, many functions work on single numbers, vectors, and matrices. For example, the sin function when applied to a matrix will return a new matrix with the sin of each element. But you have to be careful, as certain functions have different behavior. Suppose you have an 7x7 matrix X. You want to compute the log of every element, the square of every element, add 1 to every element, and divide every element by 4. You will store the results in four matrices, A,B,C,D. One way to do so is the following code:
for i = 1:7
for j = 1:7
A(i, j) = log(X(i, j));
B(i, j) = X(i, j) ^ 2;
C(i, j) = X(i, j) + 1;
D(i, j) = X(i, j) / 4;
end
end