MATLAB软件应用及语法学习基础

MATLAB初步学习笔记

1、MATLAB简介

1.1简介

在这里插入图片描述

MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析无线通信深度学习图像处理计算机视觉信号处理、量化金融与风险管理、机器人,控制系统等领域。 [1]

MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室),软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式。 [1]

MATLAB和MathematicaMaple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对CFORTRANC++JAVA的支持。

1.2 软件操作界面

1、启动MATLAB界面:

在这里插入图片描述

2、进入主界面:

在这里插入图片描述

3、界面功能窗口简单介绍

在这里插入图片描述

4、编写代码并执行指定代码

在这里插入图片描述

5、执行代码,console命令行窗口查看结果:

在这里插入图片描述

2、MATLAB变量使用技巧

matlab格式命令 format

format long`长(long ) 命令格式显示小数点后16位。

默认情况下,MATLAB 四个小数位值显示数字。这就是所谓的 short format.

在这里插入图片描述

空格格式命令回合到小数点后两位数字。例如:

format bank
daily_wage = 177.45;
weekly_wage = daily_wage * 6

MATLAB将执行上面的语句,并返回以下结果:

weekly_wage =
       1064.70

MATLAB 显示大量使用指数表示法。

短格式e命令允许以指数的形式显示小数点后四位,加上指数。

例如:

format short e
4.678 * 4.9

MATLAB将执行上面的语句,并返回以下结果:

ans =
   2.2922e+01 

format long e命令允许以指数的形式显示小数点后十六位,加上指数。例如:

format long e
x = pi

MATLAB将执行上面的语句,并返回以下结果:

x =
     3.141592653589793e+00

format rat 格式大鼠命令给出最接近的有理表达式,从计算所得。例如:

format rat
4.678 * 4.9

MATLAB将执行上面的语句,并返回以下结果:

ans =
   2063/90  

长任务

长任务可以通过使用省略号(…)延伸到另一条线路。例如,

initial_velocity = 0;
acceleration = 9.8;
time = 20;
final_velocity = initial_velocity ...
    + acceleration * time

MATLAB常用的运算符和特殊字符

MATLAB常用的运算符和特殊字符如下表所示:

运算符目的
+加;加法运算符
-减;减法运算符
*****标量和矩阵乘法运算符
.*数组乘法运算符
^标量和矩阵求幂运算符
.^数组求幂运算符
**矩阵左除
/矩阵右除
*.*阵列左除
./阵列右除
:向量生成;子阵提取
( )下标运算;参数定义
[ ]矩阵生成
.点乘运算,常与其他运算符联合使用
续行标志;行连续运算符
,分行符(该行结果不显示)
;语句结束;分行符(该行结果显示)
%注释标志
_引用符号和转置运算符
._非共轭转置运算符
=赋值运算符

创建向量

向量是一维数组中的数字。 MATLAB允许创建两种类型的矢量:

  • 行向量
  • 列向量

创建行向量括在方括号中的元素的集合,用空格或逗号分隔的元素。

r = [7 8 9 10 11]

创建列向量通过内附组方括号中的元素,使用分号(;)分隔的元素。

c = [7;  8;  9;  10; 11]

矩阵用法

创建矩阵

普通创建方式如下:

矩阵是一个二维数字阵列。

在MATLAB中,创建一个矩阵每行输入空格或逗号分隔的元素序列,最后一排被划定一个分号。

例如,下面创建了一个3×3的矩阵:

m = [1 2 3; 4 5 6; 7 8 9]

创建矩阵的另一种方法是使用 oneszerosrand 等函数。

z = zeros(5,1)//创建5行,1列的矩阵,值全为0
o = ones(5,2)//创建5行,2列的矩阵,值全为1
r = rand(5,3)//创建5行,3列的矩阵,值为0到1的随机数
转置矩阵
r = rand(5,3)//创建5行,3列的矩阵,值为0到1的随机数
a = r'//矩阵转置,列变为行,行变为列
矩阵元素级操作

执行元素级乘法(而非矩阵乘法),请使用 .* 运算符:

a = [1 2 3;4 5 6;7 8 9]
p = a.*a

结果:
a =
     1     2     3
     4     5     6
     7     8     9
p =
     1     4     9
    16    25    36
    49    64    81

执行元素级求幂

a = [1 2 3;4 5 6;7 8 9]
a.^3
结果:
a =
     1     2     3
     4     5     6
     7     8     9
ans =
     1     8    27
    64   125   216
   343   512   729

3、MATLAB常用命令

MATLAB管理会话的命令

MATLAB提供管理会话的各种命令。如下表所示:

命令目的/作用
clc清除命令窗口。
clear从内存中删除变量。
exist检查存在的文件或变量。
global声明变量为全局。
help搜索帮助主题。
lookfor搜索帮助关键字条目。
quit停止MATLAB。
who列出当前变量。
whos列出当前变量(长显示)。

MATLAB的系统命令

使用MATLAB的时候有一些系统命令可以方便我们的操作,如在当前的工作区中可以使用系统命令保存为一个文件、加载文件、显示日期、列出目录中的文件和显示当前目录等。

下表列举了一些MATLAB常用的系统相关的命令:

命令目的/作用
cd改变当前目录。
date显示当前日期。
delete删除一个文件。
diary日记文件记录开/关切换。
dir列出当前目录中的所有文件。
load负载工作区从一个文件中的变量。
path显示搜索路径。
pwd显示当前目录。
save保存在一个文件中的工作区变量。
type显示一个文件的内容。
what列出所有MATLAB文件在当前目录中。
wklread读取.wk1电子表格文件。

MATLAB输入和输出命令

MATLAB提供了以下输入和输出相关的命令:

命令作用/目的
disp显示一个数组或字符串的内容。
fscanf阅读从文件格式的数据。
format控制屏幕显示的格式。
fprintf执行格式化写入到屏幕或文件。
input显示提示并等待输入。
;禁止显示网版印刷

fscanf和fprintf命令的行为像C scanf和printf函数。他们支持格式如下代码:

格式代码目的/作用
%s输出字符串
%d输出整数
%f输出浮点数
%e显示科学计数法形式
%g%f 和%e 的结合,根据数据选择适当的显示方式

用于数字显示格式的函数有以下几种形式:

Format函数最多可显示
format short四位十进制数(默认)
format long15位定点表示
format short e五位浮点表示
format long e15位浮点表示
format bank两个十进制数字
format +正,负或零
format rat有理数近似
format compact变量之间没有空行
format loose变量之间有空行

MATLAB向量,矩阵和阵列命令

下表列出了MATLAB用于工作数组、矩阵和向量的各种命令:

命令作用/目的
cat连接数组
find查找非零元素的索引
length计算元素数量
linspace创建间隔向量
logspace创建对数间隔向量
max返回最大元素
min返回最小元素
prod计算数组元素的连乘积
reshape重新调整矩阵的行数、列数、维数
size计算数组大小
sort排序每个列
sum每列相加
eye创建一个单位矩阵
ones生成全1矩阵
zeros生成零矩阵
cross计算矩阵交叉乘积
dot计算矩阵点积
det计算数组的行列式
inv计算矩阵的逆
pinv计算矩阵的伪逆
rank计算矩阵的秩
rref将矩阵化成行最简形
cell创建单元数组
celldisp显示单元数组
cellplot显示单元数组的图形表示
num2cell将数值阵列转化为异质阵列
deal匹配输入和输出列表
iscell判断是否为元胞类型

MATLAB绘图命令

MATLAB提供了大量的命令绘制图表。下表列出了一些常用的命令绘制:

命令作用/目的
axis人功选择坐标轴尺寸
fplot智能绘图功能
grid显示网格线
plot生成XY图
print打印或绘图到文件
title把文字置于顶部
xlabel将文本标签添加到x轴
ylabel将文本标签添加到y轴
axes创建轴对象
close关闭当前的绘图
close all关闭所有绘图
figure打开一个新的图形窗口
gtext通过鼠标在指定位置放注文
hold保持当前图形
legend鼠标放置图例
refresh重新绘制当前图形窗口
set指定对象的属性,如轴
subplot在子窗口中创建图
text在图上做标记
bar创建条形图
loglog创建双对数图
polar创建极坐标图像
semilogx创建半对数图(对数横坐标)
semilogy创建半对数图(对数纵坐标)
stairs创建阶梯图
stem创建针状图

4、运算

逻辑运算

MATLAB逻辑运算都是针对元素的操作,运算结果是特殊的逻辑数组;在逻辑分析时,逻辑(真)用1表示,逻辑假用0表示,逻辑运算中所有的非零元素作为1处理。

注意:

使用MATLAB逻辑运算时的语法不要与C语言、Java等编程语言混淆。

MATLAB 有两种类型的逻辑运算符和函数:

  • Element-wise - 这些运算上的对应元素的逻辑阵列。
  • Short-circuit - 这些运算上的标量,逻辑表达式。

MATLAB元素明智的逻辑运算符操作元素元素逻辑阵列:符号&,|和〜逻辑数组运算符AND,OR,NOT。

MATLAB允许短路的短路逻辑运算符,逻辑运算:符号&&和| |是短路逻辑符AND和OR。

详细例子

在MATLAB中建立一个脚本文件,并输入下面的代码:

a = 5;
b = 20;
   if ( a && b )
        disp('Line 1 - Condition is true');
   end
   if ( a || b )
       disp('Line 2 - Condition is true');
   end
   % lets change the value of  a and b 
   a = 0;
   b = 10;
   if ( a && b )
       disp('Line 3 - Condition is true');
   else
       disp('Line 3 - Condition is not true');
   end
   if (~(a && b))
   
      disp('Line 4 - Condition is true');
   end

运行该文件,产生如下结果:

Line 1 - Condition is true
Line 2 - Condition is true
Line 3 - Condition is not true
Line 4 - Condition is true
MATLAB逻辑运算功能

除了在上述的逻辑运算符,MATLAB 提供下面的命令或函数用于同样的目的:

函数描述
and(A, B)查找数组或标量输入的逻辑和;执行所有输入数组A,B等的逻辑AND,并返回包含设置为逻辑1(真)或逻辑0(假)的元素的数组。如果所有输入数组在同一个数组位置都包含一个非零元素,那么输出数组的一个元素将被设置为1;否则,该元素设置为0。
not(A)查找数组或标量输入的逻辑NOT;执行输入数组A的逻辑NOT,并返回包含设置为逻辑1(真)或逻辑0(假)的元素的数组。如果输入数组在同一个数组位置包含一个零值元素,那么输出数组的一个元素将被设置为1;否则,该元素设置为0。
or(A, B)查找数组或标量输入的逻辑或; 执行所有输入数组A,B等的逻辑或,并返回包含设置为逻辑1(真)或逻辑0(假)的元素的数组。如果任何输入数组在同一个数组位置包含一个非零元素,则输出数组的一个元素设置为1;否则,该元素设置为0。
xor(A, B)逻辑异或; 对数组A和B的相应元素执行异或运算。如果A(i,j,…)或B(i,j)…,则所得到的元素C(i,j,…) j,…),但不是两者都是非零的。
all(A)确定数组A的所有数组元素是否为非零或真。如果A是向量,则如果所有元素都为非零,则所有(A)返回逻辑1(真),如果一个或多个元素为零,则返回逻辑0(假)。如果A是非空矩阵,则所有(A)将A的列视为向量,返回逻辑1和0的行向量。如果A是空的0x0矩阵,则全部(A)返回逻辑1(真)。如果A是一个多维数组,则所有(A)都沿着第一个非指定维度行事,并返回一个逻辑值数组。 该尺寸的尺寸减小到1,而所有其他尺寸的尺寸保持不变。这个维度的大小减少到1,而其他所有维度的尺寸保持不变。
all(A, dim)通过标量dim沿着维数A的维度进行测试。
any(A)确定数组元素是否为非零;测试数组中不同维度的元素是否为非零数字,或是逻辑1(真)。 任何函数忽略NaN(不是数字)的条目。如果A是向量,任何(A)如果A的任何元素是非零数或逻辑1(真),则返回逻辑1(真),如果所有元素为零,则返回逻辑0(假)。如果A是非空矩阵,则任何(A)将A的列视为向量,返回逻辑1和0的行向量。如果A是一个空的0x0矩阵,任何(A)返回逻辑0(假)。如果A是一个多维数组,则任何(A)都沿着第一个非整数维进行操作,并返回一个逻辑值数组。该维度的尺寸减小到1,而所有其他维度的尺寸保持不变。
any(A,dim)通过标量dim沿着维数A的维度进行测试。
false逻辑0(假)
false(n)是逻辑0的n×n矩阵
false(m, n)是逻辑0的一个m×n矩阵。
false(m, n, p, …)是由逻辑0的逐列逐列数组。
false(size(A))是与数组A大小相同的逻辑零数组。
false(…,‘like’,p)是与逻辑阵列p相同的数据类型和稀疏性的逻辑零数组。
ind = find(X)查找非零元素的索引和值;定位数组X的所有非零元素,并返回向量中这些元素的线性索引。 如果X是行向量,则返回的向量是行向量; 否则返回列向量。如果X不包含非零元素或是空数组,则返回一个空数组。
ind = find(X, k)ind = find(X, k, ‘first’)最多返回与X的非零条目相对应的前k个索引。k必须是正整数,但它可以是任何数字数据类型。
ind = find(X, k, ‘last’)最多返回与X的非零条目相对应的最后k个索引。
[row,col] = find(X, …)返回矩阵X中非零条目的行和列索引。使用稀疏矩阵时,此语法特别有用。 如果X是N>2的N维数组,col包含列的线性索引。
[row,col,v] = find(X, …)返回X中非零条目的列或行向量v,以及行和列索引。如果X是逻辑表达式,则v是逻辑数组。 输出v包含通过评估表达式X获得的逻辑数组的非零元素。
islogical(A)确定输入是否为逻辑数组;如果A是逻辑数组,返回true,否则返回false。 如果A是从逻辑类派生的类的实例,它也返回true。
logical(A)将数值转换为逻辑;返回一个可用于逻辑索引或逻辑测试的数组。
true逻辑1(真)
true(n)是一个n×n逻辑矩阵。
true(m, n)是一个mxn逻辑矩阵。
true(m, n, p, …)是由逻辑1的逐列逐列数组。
true(size(A))是与数组A大小相同的逻辑数组。
true(…,‘like’, p)是与逻辑阵列p相同的数据类型和稀疏性的逻辑阵列。

算术运算

MATLAB的算术运算有两种不同类型:1)矩阵算术运算;2)阵列算术运算。

MATLAB矩阵算术运算与线性代数中的定义相同:执行数组操作,无论是在一维和多维数组元素的元素。

矩阵运算符和数组运营商是有区别的句点(.)符号。然而,由于加法和减法运算矩阵和阵列是相同的,操作者这两种情况下是相同的。

下表给出了运算符的简要说明:

操作符描述
+加法或一元加号。A + B将A和B。 A和B必须具有相同的尺寸,除非一个人是一个标量。一个标量,可以被添加到任何大小的矩阵。
-减法或一元减号。A - B,减去B从A和B必须具有相同的大小,除非是一个标量。可以从任意大小的矩阵中减去一个标量。
*****矩阵乘法;是一个更精确的矩阵A和B的线性代数积,矩阵乘法对于非纯量A和B,列一个数必须等于B.标量可以乘以一个任意大小的矩阵的行数。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yvbDmAV1-1616230062391)(http://www.yiibai.com/uploads/allimg/131001/1643251036-0.jpg)]
.*数组的乘法;A.*B是数组A和B的元素积,A和B必须具有相同的大小,除非A、B中有一个是标量。
/斜线或矩阵右除法;B/A与B * inv(A)大致相同。更确切地说: B/A = (A’B’)’
./矩阵右除法;矩阵A与矩阵B相应元素相除(A、B为同纬度的矩阵)
*.*反斜杠或矩阵左除;如果A是一个方阵,AB是大致相同的INV(A)* B,除非它是以不同的方式计算。如果A是一个n*n的矩阵,B是一个n组成的列向量,或是由若干这样的列的矩阵,则X = AB 是方程 AX = B ,如果A严重缩小或者几乎为单数,则显示警告消息。
.数组左除法;A. B是元素B(i,j)/A(i,j)的矩阵。A和B必须具有相同的大小,除非其中一个是标量。
^矩阵的幂。X^P是X到幂P,如果p是标量;如果p是一个整数,则通过重复平方计算功率。如果整数为负数,X首先反转。对P值的计算,涉及到特征值和特征向量,即如果[ D ] = V,EIG(x),那么X^P = V * D.^P / V。
.^A.^B:A的每个元素的B次幂(A、B为同纬度的矩阵)
矩阵的转置;A’是复数矩阵A的线性代数转置,这是复共轭转置。
.'数组的转置;A’是数组A的转置,对于复数矩阵,这不涉及共轭。
举例说明

下面的例子显示使用标量数据的算术运算符。创建一个脚本文件,用下面的代码:

a = 10;
b = 20;
c = a + b
d = a - b
e = a * b
f = a / b
g = a  b
x = 7;
y = 3;
z = x ^ y

运行该文件,产生结果如下:

c =
    30
d =
   -10
e =
   200
f =
    0.5000
g =
     2
z =
   343
MATLAB算术运算功能

除了上述列举的一些算术运算符,MATLAB 中还拥有以下的命令/功能:

函数描述
uplus(a)一元加号;增加量a
plus (a,b)相加;返回 a + b
uminus(a)一元减号;减少a
minus(a, b)相减;返回 a - b
times(a, b)数组相乘;返回 a.*b
mtimes(a, b)矩阵相乘;返回 a* b
rdivide(a, b)右阵划分;返回 a ./ b
ldivide(a, b)左阵划分;返回 a. b
mrdivide(A, B)求解线性方程组xA = B for x
mldivide(A, B)求解线性方程组xA = B for x
power(a, b)数组求幂;返回 a.^b
mpower(a, b)矩阵求幂;返回 a ^ b
cumprod(A)累积乘积;返回与包含累积乘积的数组A相同大小的数组。如果A是向量,则cumprod(A)返回一个包含A的元素的累积乘积的向量。如果A是矩阵,则cumprod(A)返回一个矩阵,其中包含A的每一列的累积乘积。如果A是一个多维数组,那么cumprod(A)将沿着第一个非正整数维。
cumprod(A, dim)沿维 dim 返回返回累积乘积。
cumsum(A)累加总和;返回包含累积和的数组A如果A是向量,则cumsum(A)返回一个包含A的元素的累积和的向量。如果A是矩阵,则cumsum(A)返回一个矩阵,其中包含A的每列的累积和。如果A是一个多维数组,那么cumsum(A)将沿着第一个非整数维度起作用。
cumsum(A, dim)返回沿着dim的元素的累积和。
diff(X)差分和近似导数;计算x相邻元素之间的差异。如果X是向量,则diff(X)返回相邻元素之间的差异的向量,比X短一个元素:[X(2)-X(1)X(3)-X(2)… X(N)-X(N-1)]如果X是一个矩阵,则diff(X)返回行差的矩阵:[X(2:m,…)-X(1:m-1,😃]
diff(X,n)递归应用n次,导致第n个差异。
diff(X,n,dim)它是沿标量dim指定的维数计算的第n个差分函数。 如果order n等于或超过Dim的长度,diff将返回一个空数组。
prod(A)数组元素的乘积;返回A数组元素的乘积。如果A是向量,则prod(A)返回元素的乘积。如果A是非空矩阵,则prod(A)将A的列作为向量,并返回每列乘积的行向量。如果A是一个空的0-by-0矩阵,则prod(A)返回1。如果A是一个多维数组,那么prod(A)将沿着第一个非子集维度行为并返回一个乘积数组。 该维数的尺寸减小到1,而所有其他维数的尺寸保持不变。如果输入A为单个,则prod函数计算并返回B为单个;对于所有其他数字和逻辑数据类型,prod函数计算并返回B为double。
prod(A,dim)沿dim维度返回乘积。 例如,如果A是矩阵,则prod(A,2)是包含每一行的乘积的列向量。
prod(___,datatype)在数据类型指定的类中乘以并返回一个数组。
sum(A)数组元素的总和;返回数组的不同维度的和。如果A是浮动的,那么是双倍或单个,B是本地累加的,它与A相同,B与A具有相同的类。如果A不是浮动的,则B被累加为双,B具有类double。如果A是向量,则sum(A)返回元素的总和。如果A是矩阵,则sum(A)将A的列作为向量,返回每列的和的行向量。如果A是一个多维数组,sum(A)将沿着第一个非单例维度的值作为向量来处理,返回一个行向量的数组。
sum(A,dim)沿标量A的维度求和。
sum(…, ‘double’)sum(…, dim,‘double’)执行双精度加法,并返回double类型的答案,即使A具有数据类型单一或整型数据类型。这是整型数据类型的默认值。
sum(…, ‘native’)sum(…, dim,‘native’)在本机数据类型A中执行添加,并返回相同数据类型的答案。 这是单和双的默认值。
ceil(A)向正无穷方向舍入;将a元素舍入为大于或等于A的最近整数。
fix(A)舍入为零
floor(A)向负无穷方向舍入;将a元素舍入为小于或等于a的最近整数。
idivide(a, b)idivide(a, b,‘fix’)整数除法的舍入选项;与A./B相同,只是分数的商向零舍入到最接近的整数。
idivide(a, b, ‘round’)分数的商舍入到最近的整数。
idivide(A, B, ‘floor’)分数商向负无穷大舍入到最接近的整数。
idivide(A, B, ‘ceil’)分数商向无穷大舍入到最接近的整数。
mod (X,Y)除法后的模数;返回X - n.* Y,其中 n = floor(X./Y)。 如果Y不是整数,并且商X / Y在整数的舍入误差内,则n是整数。 输入X和Y必须是相同大小的真实数组或实数标量(提供Y〜= 0)。请注意:mod(X,0) 是 Xmod(X,X) 是 0对于 X = Y 和 Y = 0的 mod(X,Y)具有与Y相同的符号。
rem (X,Y)除法之后的余数;返回X - n.* Y,其中n = fix(X./Y)。 如果Y不是整数,并且商X / Y在整数的舍入误差内,则n是整数。 输入X和Y必须是相同大小的真实数组或实数标量(提供Y〜= 0)。请记住:rem(X,0) 是 NaNX〜= 0的rem(X,X)为0对于 X~=Y 和 Y~=0 的rem(X,Y)与X具有相同的符号。
round(X)舍入到最接近的整数; 将X的元素舍入到最接近的整数。 正数元素的小数部分为0.5,最大到最接近的正整数。 负数元素的小数部分为-0.5,向下舍入到最接近的负整数。

关系运算

MATLAB关系运算

2018-08-11 10:29 更新

MATLAB关系运算符对数组的元素进行设置,将元素设置为逻辑1(真)的关系是真实的和逻辑0(假),它是两个阵列,可以返回一个相同大小的逻辑阵列间的比较。

MATLAB关系运算符标和非标量数据上也能正常工作。

MATLAB关系运算符如下表:

操作符描述
<小于
<=小于等于
>大于
>=大于等于
==等于
~=不等于
详细例子

在MATLAB的命令提示符下建立一个脚本文件,并输入下述代码:

a = 100;
b = 200;
if (a >= b)
max = a
else
max = b
end

运行该文件,产生的结果如下:

max =
   200

除了在上述的关系运算符,MATLAB提供下列命令/函数用于同样的目的:

函数描述
eq(a, b)测试a是否等于b
ge(a, b)测试是否大于或等于B
gt(a, b)测试a是否大于b
le(a, b)测试a是否小于或等于b
lt(a, b)测试a是否小于b
ne(a, b)测试a是否不等于b
isequal测试数组以获得相等性
isequaln测试数组相等,将NaN值视为相等
详细例子

在MATLAB的命令提示符中建立一个脚本文件,并输入下述的代码:

% comparing two values
a = 100;
b = 200;
if (ge(a,b))
max = a
else
max = b
end
% comparing two different values
a = 340;
b = 520;
if (le(a, b))
disp(' a is either less than or equal to b')
else
disp(' a is greater than b')
end

运行该文件,产生如下结果:

max =
   200
 a is either less than or equal to b

位运算

MATLAB位运算

2018-08-11 10:24 更新

MATLAB提供位运算,如’位’,'位或’和’位不操作,移位操作等各种函数

以下的表格显示了常用的按位运算:

函数目的/作用
bitand(a, b)整数a和b的逐位AND
bitcmp(a)a的位补码
bitget(a,pos)在指定位置pos中获取位,在整数数组A中
bitor(a, b)整数a和b的逐位OR
bitset(a, pos)在某一位置上设置位
bitshift(a, k)返回向左移位k位,相当于乘以2k。k的负值对应于向右移位或除以2 | k | 并舍入到最接近的整数到负无穷大。任何溢出位都被截断。
bitxor(a, b)整数a和b的逐位异或
swapbytes交换字节顺序
详细例子

在MATLAB中建立一个脚本文件,并输入下面的代码:

a = 60; % 60 = 0011 1100   
b = 13; % 13 = 0000 1101 
c = bitand(a, b)      % 12 = 0000 1100  
c = bitor(a, b)       % 61 = 0011 1101 
c = bitxor(a, b)      % 49 = 0011 0001 
c = bitshift(a, 2)    % 240 = 1111 0000 */
c = bitshift(a,-2)    % 15 = 0000 1111 */

运行该文件,显示以下结果:

c =
    12
c =
    61
c =
    49
c =
   240
c =
    15
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小枫学IT

如果觉得有用的话,可以支持一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值