1. 代码:
创建两个double型变量a=32、b=5,并计算a+b、a-b、a*b、a/b、a\b;创建两个int8型变量a、b,取同样数值,并计算a+b、a-b、a*b、a/b、a\b,对于计算结果与前次计算结果不同的情形请给出解释。
%% 第一小问
a=double(32);b=double(5);
A=a+b
B=a-b
C=a*b
D=a/b
E=a\b
%% 第二小问
a=int8(32);b=int8(5);
AA=a+b
BB=a-b
CC=a*b
DD=a/b
EE=a\b
对结果的解释:
第一小问a和b为双精度,第二小问为整型。
其中’a+b’和’a-b’的结果都想等,浮点型’a*b’为160,而int8整型’a*b’为127,是因为int8整型的最大值只能为127。双精度浮点型’a/b’的结果为6.4000,int8整型的结果取6.4000的整数,为6,是因为对运算的结果也要为int8整型。’a\b’表示a左除以b,即b除以a,双精度浮点型’a\b’为0.1563,对与int8整型取整数的话结果就为0。
2. 代码
2. 查看int16数据类型的取值范围(intmin,intmax);查看单精度数据类型的取值范围和精度(realmin,realmax,eps)。
%% 第一小问
intmin int16
intmax int16
%% 第二小问
realmin('single')
realmax('single')
eps('single')
运行结果:
3. 代码
求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量:
(1) sin(60o) (2) e3 (3) cos(3/4π)
%% 第三题
clc,clear
A=sind(60)
B=exp(3)
C=cos(3/4*pi)
运行结果:
将鼠标移至工作区选中其中变量,点击右键,点击另存为…,之后可自行命名该工作区变量,保存位置也可修改,最后点击保存即可,如下图所示:
4. 代码:
%% 第四题
clc,clear
a=complex(3,-5);
b=complex(4,2);
c=complex(2,-8);
A=a*b
B=sin(c)
运行结果:
5. 运行结果:
运行结果为逻辑值;
第(5)为错误写法,要表示否定表达,(4)是正确表达。
6.(1)
结果为逻辑值0
原因:c>b为假,’&&’为并,只有两边为真结果才为真,所以该小问结果为假
(2)
结果为逻辑值0
原因:a为39,d为7,’==’为判断是否相等,显然不成立。
(3)
结果为逻辑值1
‘>’计算的优先级高于’|’,所以b>c为真,’|’为只要一边为真则结果为真,所以该小问结果为真。
(4)
结果为逻辑值1
‘~’表示逻辑非运算符,’~d’取d的逻辑非,为0,则在加一个’~~d’为0的逻辑非,为1。
7.代码:
x = [ 9 3 0 6 3];
y = mod((sqrt(length(((x+5).*[1 2 3 4 5]))*5)),3)
运行结果:
解释:
‘.*’为向量对应每个元素相乘,(x+5)为[14 8 5 11 8],经过点乘之后变成向量[14 16 15 44 40],’length’函数表示计算向量的长度,那么length(((x+5).*[1 2 3 4 5]))的结果就是以上的向量长度,为5,’sqrt’表示算术平方根,即5*5的算术平方根为5,’mod’表示取余,经过以上计算,化简为mod(5,3),即5除以3的余数,显然是2。
8.代码:
a = [3, 7, 2, 7, 9, 3, 4, 1, 6];
b = [7];
a(4) = [];
vec1 = a==b
vec2 = mod(a,2)==0
c = sum(vec1)
vec3 = vec1+vec2
d = vec3.*a
vec4 = find(a > 5)
e = a(vec4) + 5;
vec5 = find(a < 5);
f = vec5.^2;
结果:
c=1;
d=[0 7 2 0 0 4 0 6];
e=[12 14 11];
f=[1 9 25 36 49];
解释:
vec1:
a(4)=[]为把a向量的第四个数字删掉,之后a=[3 ,7,2,9,3,4,1,6];’a==b’为判断a中的元素是否和b中的元素相等,相等则返回逻辑值1,不想等则返回0,经过计算vec1的结果为[0 1 0 0 0 0 0 ]
vec2:
‘mod’函数是取余数的意思,即对a向量的所有元素对2取余,再对每个余数和0进行判断,如果想等,返回逻辑值1,不想等返回逻辑值0,返回的结果为vec2=[ 0 0 1 0 0 1 0 1];
vec3:
显然是vec1和vec2把逻辑值变成整型数值相加,结果为[0 1 1 0 0 1 0 1];
vec4:
‘find’函数为查找,即查找满足’a>5’的元素,满足条件则返回所在的位置,不满足则不返回,结果为[2 4 8];即第2、4和8个元素的数值为大于5.
vec5:
同理查找a中元素数值小于5的元素的位置。
广西民族大学Matlab实验3
于 2023-12-01 14:46:20 首次发布