课后习题解答
2.3 写出完成下列操作的命令
(1)将矩阵 A 第2~5行中第1,2,3列元素赋给矩阵B。
(2)删除矩阵 A 的第7号元素。
(3)将矩阵 A 的每一个元素值加30。
(4)求矩阵 A 的大小和维数。
(5)将向量 t 的0元素用机器零来替代。
(6)将含有12个元素的向量 x 转换成3*4矩阵。
(7)求一个字符串的ASCII码。
(8)求一个ASCII所对应的字符。
% (1)
clear; clc
A = magic(5);
B = A(2:5,1:2:5);
% (2)
clear; clc
A = 1 : 10;
A(7) = [];
% (3)
clear; clc
A = 1 : 10;
A = A + 30;
% (4)
clear; clc
A = rand(3,4);
size(A);
ndims(A);
% (5)
clear; clc
A = rand(1,10)<=0.5;
A = A + (A==0)*eps;
% (6)
clear; clc
X = rand(1,12);
X = reshape(X, 3, 4);
% (7)
clear; clc
ch = 'I am rui';
ch = abs(ch);
% (8)
setstr(ch);
2.4 下列命令执行后,L1,L2,L3,L4的值分别是多少?
A = 1 : 9;
B = 10 - A;
L1 = A == B; % 0 0 0 0 1 0 0 0 0
L2 = A <= 5; % 1 1 1 1 1 0 0 0 0
L3 = A>3 & A<7; % 0 0 0 1 1 1 0 0 0
L4 = find(A>3 & A<7); % 4 5 6
2.5 已知:
完成下列操作:
(1)取出A的前3行构成矩阵B,前两列构成矩阵C,右下角3*2子矩阵构成D,B与C的乘积构成矩阵E。
(2)分别求E<D、E&D、E|D、~E|~D和find(A>=10&A<25)。
A = [23 10 -0.778 0;41 -45 65 5;32 5 0 32;6 -9.54 54 3.14];
% (1)
B = A(1:3, :);
C = A(:, 1:2);
D = A(2:4, 3:4);
E = B*C;
% (2)
E<D;
E&D;
E|D;
~E;
~D;
find(A>=10 & A<25);
2.6 当A=[34,NaN,Inf,-Inf,-pi,eps,0]时,分析下列函数的执行结果:all(A),any(A,isnan(A),isinf(A),isfinite(A)。
A = [34, NaN, Inf, -Inf, -pi, eps, 0];
all(A);
any(A);
isnan(A);
isinf(A);
isfinite(A);
2.7 用结构体矩阵来存储3名学生的基本情况数据,每名学生的数据包括学号、姓名、专业和数学的成绩。
A = {11, 'rui', 'jizhi', 99;
13, 'key', 'jisuanji', 90;
17, 'www', 'shuxue', 98};
2.8 建立单元矩阵B并回答有关问题。
(1)size(B) 和 ndims(B) 的值分别是多少?
(2)B(2) 和 B(4) 的值分别是多少?
(3)B(2)=[] 和 B{3}=[]执行后,B 的值分别是多少?
% B ={1, 'Brenden';
% reshape(1:9, 3, 3), {12, 34, 2; 54, 21, 3; 4, 23, 67}};
B{1,1} = 1;
B{1,2} = 'Brenden';
B{2,1} = reshape(1:9, 3, 3);
B{2,2} = {12, 34, 2; 54, 21, 3; 4, 23, 67};
% (1)
size(B);
ndims(B);
% (2)
B(2);
B(4);
% (3)
% B(3) = [];
B{3} = [];