Matlab语句
目录
一、变量类型和转化
1.1 数值类型
整数类型
整数类型有8种、上面的数字为其内存大小,如:int8,整数所占内存大小为8个字节。除了int64 和 uint64不能进行数值运算之外都可以。
类型转换
在没有说明的情况下,系统默认的数据类型是双精度浮点型。对应的整数转换函数为对应的整数类型名 如:int8
注意:matlab数值转换中默认将数值转换为最接近的整数值。如果小数部分为0.5,则转换后的结果为与该浮点数最接近的两个整数中绝对值较大的一个。
>> asd=3.3
asd = %默认是双精度浮点类型
3.3000
>> int8(asd)
ans =
int8
3 %转换后的结果,默认将数值3.3转换为最接近的整数值3
>> asf=3.8
asf =
3.8000
>> int8(asf)
ans =
int8
4 %转换后的结果,默认将数值3.8转换为最接近的整数值4
>> asd
asd = %在没有原来的转换并没有改变变量的类型,只是打印出了对应的数转换后的值
3.3000
>> asd
asd =
3.3000
>> asf
asf =
3.8000
>> asf=int8(asf) %将变量的类型转换为int8
asf =
int8
4
>> asd=int8(asd)
asd =
int8
3
>> qwe=3.5 %对小数部分是0.5的数进行转换
qwe =
3.5000
>> qwr=-3.5
qwr =
-3.5000
>> int8(qwe)
ans =
int8
4
>> int8(qwr)
ans =
int8
-4
特定的取整转换函数:
浮点数类型
双精度浮点型与其他类型参与运算的返回类型:
-
单精度浮点型不可以与整数型进行算数运算
-
浮点类型数值是离散的不是连续的,位于两个浮点类型之间的间隙的数值必须由最近的浮点数来表示
eps(x) 间隙距离获得函数:获得一个数值和最接近该数值的浮点数的间隙。
>> eps(5) % 5与离5最近的浮点数的距离
ans =
8.8818e-16
复数
-
复数的表示
可以使用 i或者j直接当作复数的虚部来表示,也可以用么complex函数来创建。
>> 3+4j
ans =
3.0000 + 4.0000i
>> complex(4,5)
ans =
4.0000 + 5.0000i
相关函数
无穷量和非数值量
-
无穷量
正无穷量 Inf、负无穷量-Inf。一般由运算溢出超出了双精度浮点数数值范围的结果。
-
非数值量
NaN表示非数的实部,InF为非数的虚部。一般由0/0和InF/InF类型的非正常运算而产生。
以上数值类型来自
原文链接:https://blog.csdn.net/qq_45988416/article/details/112751835
1.2 字符串类型
>> %字符串不支持乘法运算和减法
%string类型:用单引号或者双引号括起来
%字符串和字符串矩阵
%可以进行加法运算(字符串的拼接)
s1 = "hello"
s2 = 'wlrld'
a = [s1 s2]
b = [s1; s2]
c = s1+s2
d = s1+" "+s2
s1 =
"hello"
s2 =
'wlrld'
a =
1×2 string 数组
"hello" "wlrld"
b =
2×1 string 数组
"hello"
"wlrld"
c =
"hellowlrld"
d =
"hello wlrld"
1.3 字符串和数值的转化
>> %str2double()、str2num():字符串转数字
a1 = str2double("5") + 4
%num2str():数值转字符串
a2 = num2str(1/3)
a3 = num2str(1/3,2)%2为有效数字的位数
a1 =
9
a2 =
'0.33333'
a3 =
'0.33'
二、输入输出
2.1输入语句
>> v = input("请输入一个值:");%输入数值或者矩阵,不支持字符串
s1 = input("请输入名字:","s");%输入字符串
s2 = input("请输入名字:",'s');%输入字符串
请输入一个值:5
请输入名字:manet
请输入名字:boy
2.2输出语句
>> %disp输出多个字段,需要将其转换成字符串矩阵输出
>> disp(v);
5
>> disp("OK");
OK
>> disp(["ARE","OK"]);%[]括起来相当于一个矩阵
"ARE" "OK"
>> disp(["HIP",5]);%自动把5转化成字符串
"HIP" "5"
>> disp(["1/2=",1/3]);
"1/2=" "0.33333"
>> disp(["1/2=",num2str(1/3,2)]);
"1/2=" "0.33"
>> %num2str(1/3,precision(精度))
>> disp(["1/3=" + num2str(1/3,2)]);
1/3=0.33
三、运算符和语句
3.1 关系运算符
%">"
%">="
%"<"
%"<="
%"=="
%非零值是真,假为0
3.2 逻辑运算符
% 与 &(两边条件都为真则真为1)
% 或 |(两边条件有一个是真,就返回1,条件否为false,返回0)
% 非 ~(取反)
3.3 if…else控制语句
>> %if 条件1
% 语句1
%elseif(连写不加空格) 条件2
% 语句2
%else
% 语句3
%end
if(1<3)
disp("ture");
end
ture
>> %判断质数和合数
%isprime确定哪些数是质数,是质数为真
v = input("请输入一个值:")
if(v == 1)
disp("1既不是质数也不是合数")
elseif(isprime(v))
disp("输入是质数")
else
disp("输入是合数")
end
请输入一个值:3
v =
3
输入是质数
>>
3.4 for循环
>> %for index = valuse
% 语句
%end
for index = [1 2 3]
disp(index)
end
1
2
3
>> %求1+2+3+4+……+100
sum = 0;
for i = 1:100
sum = sum + i;
end
>> %二重for循环
for i=[1 2 3]
for j=[1 2]
disp([i j])
end
end
1 1
1 2
2 1
2 2
3 1
3 2
>>
3.5 while循环
>> %while 表达式(为真)
% 语句
%end
n = 1
while (n<5)
disp(n);
n = n +1;
end
n =
1
1
2
3
4
>>
四、关键字
>> %一个循环
for i = 1:2
for j = 1:3
disp(["i = "+num2str(i) + " , j = "+num2str(j)])
end
end
i = 1 , j = 1
i = 1 , j = 2
i = 1 , j = 3
i = 2 , j = 1
i = 2 , j = 2
i = 2 , j = 3
>>
4.1 continue
>> for i = 1:2
for j = 1:3
if(j == 2)
continue;%退出当前循环(continue后面的语句不再执行)
end
disp(["i = "+i + " , j = "+j])
end
end
i = 1 , j = 1
i = 1 , j = 3
i = 2 , j = 1
i = 2 , j = 3
>>
4.2 break
>> for i = 1:2
for j = 1:3
if(j == 2)
break;%退出for(整层(一层))循环
end
disp(["i = "+i + " , j = "+j])
end
end
i = 1 , j = 1
i = 2 , j = 1
>>
4.3 return
>> for i = 1:2
for j = 1:3
if(j == 2)
return;%退出多层循环
end
disp(["i = "+i + " , j = "+j])
end
end
i = 1 , j = 1