Matlab基礎第一篇

每天好心情??

每篇一句

你所做的事情,也行暫時看不到成功,但不要灰心,你并不是沒有成長,而是在扎根.

前情提要

本篇文章將會分多次發(fā)放(原因內容太長,導致寫的是否微信卡崩了??), 目的在于從基礎的Matlab的教程開始慢慢的深入. 如果大家看到該文章有些格式上的錯誤或內容上的錯誤, 歡迎評論指正.

Matlab基礎入門

在MATLAB中使用分號;

分號;表示結束語句

如果要抑制隱藏表達式的MATLAB輸出,請在表達式后添加分號

添加注釋

百分比符號%用于指示注釋行

x = 9    % assign the value 9 to x

MATLAB還可以使用塊注釋運算符 %{%} 編寫 一段注釋 .

常用的運算符和特殊字符

運算符 使用說明
+ 相加; 加法運算符
- 相減; 減法運算符
* 標量和矩陣乘法運算符
.* 陣列乘法運算符
^ 標量和矩陣求冪運算符
.^ 陣列求冪運算符
\ 左除法運算符
/ 右除法運算符
.\ 陣列左除法運算符
./ 右除法運算符
: 冒號; 生成規(guī)則間隔的元素,并表示整個行或列
( ) 括號; 包含函數(shù)參數(shù)和數(shù)組索引; 覆蓋優(yōu)先級
[ ] 括號; 罩住陣列元素
. 小數(shù)點
省略號; 行連續(xù)運算符
, 逗號; 分隔一行中的語句和元素
; 分號; 分隔列并抑制輸出顯示
% 百分號;指定一個注釋并指定格式
_ 引用符號和轉置運算符
._ 非共軛轉置運算符
= 賦值運算符

特殊變量和常數(shù)

名稱 含義
ans 最近的回應/回答
eps 浮點精度精度
pi 數(shù)字π
Inf
i, j 虛構單位√-1
.Nan 未定義的數(shù)值結果,非數(shù)字

保存工作

save命令用于在工作空間中保存所有變量,它在當前目錄中,以.mat作為擴展名的文件。

save mymat

可以隨時使用load命令重新加載文件

load mymat

變量歷史

who命令顯示使用過的所有變量名

>> who

您的變量為:
ans  x    y

whos命令更多地顯示變量

  • 當前在內存中的變量
  • 每個變量的類型
  • 每個變量的內存分配
  • 是否是復合的變量

執(zhí)行結果如下

>> whos
  Name      Size            Bytes  Class     Attributes

  ans       1x1                 8  double              
  x         1x1                 8  double              
  y         1x1                 8  double

清除命令從存儲器中刪除所有(或指定的)變量

clear x     % it will delete x, won't display anything

clear       % it will delete all variables in the workspace
            % peacefully and unobtrusively

長任務

  • 長任務可以通過使用省略號 ... 擴展到另一行
initial_velocity = 0;
acceleration = 9.8;
time = 20;
final_velocity = initial_velocity ...
    + acceleration * time

等價于

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

格式命令

默認情況下,MATLAB顯示四位小數(shù)位數(shù)。這稱為:短格式。但是,如果要更精確,則需要使用format命令。format long命令顯示十進制后的16位數(shù)字。

>> format long
>> x = 7 + 10/3 + 5 ^ 1.2

x =
    17.231981640639408
>> format long
>> x = 7 + 10/3 + 5 ^ 1.2

x =
    17.2320

format bank命令將數(shù)字舍入到小數(shù)點后兩位

>> format bank
>> daily_wage = 177.45;
>> weekly_wage = daily_wage * 6

weekly_wage =
    1064.70

MATLAB使用指數(shù)符號顯示大數(shù)字。
format short e命令以指數(shù)形式顯示四位小數(shù)加上指數(shù)。

>> format short e
>> 4.678 * 4.9

ans =
    2.2922e+01

format long e命令允許以指數(shù)形式顯示十六位小數(shù)加上指數(shù)

>> format long e
>> x = pi
x = 
    3.141592653589793e+00

format rat命令給出計算結果最接近的合理表達式

>> format rat
>> 4.678 * 4.9

ans =
    2063/90

創(chuàng)建向量

  • 向量是數(shù)字的一維數(shù)組, MATLAB允許創(chuàng)建兩種類型的向量:

    • 行向量
    • 列向量
  • 行向量是通過用方括號中的元素集合來創(chuàng)建的,使用空格逗號分隔元素

>> a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>  % 等價  a = [1 2 3 4 5 6 7 8 9]
a =
     1     2     3     4     5     6     7     8     9

計算相加

>> r = [7  8  9 10 11];
>> t = [2, 3, 4, 5, 6];

>> result = r + t

result =
     9    11    13    15    17
  • 列向量通過用方括號中的元素集合來創(chuàng)建,使用分號;來分隔元素
>> c = [7;  8;  9;  10; 11]

c =
     7
     8
     9
    10
    11

創(chuàng)建矩陣

矩陣是數(shù)字的二維數(shù)組

在MATLAB中,通過將每行作為一系列,分隔的元素輸入矩陣,并以;分隔一行。

創(chuàng)建一個3x3的矩陣:

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

m =
     1     2     3
     4     5     6
     7     8     9

管理會話的命令

命令 描述說明
clc 清除命令窗口
clear 從內存中刪除變量
exist 檢查文件或變量是否存在
global 聲明變量為全局變量
help 搜索幫助主題
lookfor 搜索幫助關鍵字的條目
quit 停止MATLAB
who 列出當前變量
whos 列出當前變量(長顯示詳細信息)

使用系統(tǒng)命令

MATLAB提供了各種有用的命令來處理系統(tǒng), 它還為其他系統(tǒng)相關活動提供各種命令

下表顯示了一些常用的系統(tǒng)相關命令

命令 描述說明
cd 更改當前目錄(進入指定目錄)
date 顯示當前日期
delete 刪除文件
diary 打開/關閉日記文件記錄
dir 列出當前目錄下的所有文件
load 從文件加載工作區(qū)變量
path 顯示搜索路徑
pwd 顯示當前目錄
save 將工作空間變量保存在文件中
type 顯示文件的內容
what 列出當前目錄中的所有MATLAB文件
wklread 讀取.wk1電子表格文件

輸入和輸出命令

MATLAB提供以下輸入和輸出相關命令

命令 描述說明
disp 顯示數(shù)組或字符串的內容
fscanf 從文件讀取格式化數(shù)據(jù)
format 控制屏幕顯示格式
fprintf 對屏幕或文件執(zhí)行格式化的寫入
input 顯示提示并等待輸入
; 禁止打印顯示

fscanffprintf命令的行為類似于C語言中的scanfprintf函數(shù)。它們支持以下格式代碼

命令 描述說明
%s 格式化為字符串
%d 格式化為字符串整數(shù)值
%f 格式化為浮點值
%e 格式化為科學記數(shù)法的浮點值
%g 格式最緊湊的形式:%f%e
\n 在輸出字符串中插入一個換行
\t 在輸出字符串中插入制表符

格式化format函數(shù)具有以下用于數(shù)字顯示的形式

命令 描述說明
format short 4位十進制數(shù)(默認)
format long 16位數(shù)字
format short e 5位數(shù)加上指數(shù)
format long e 16位加上指數(shù)
format bank 兩位十進制數(shù)字
format + 正,負或零
format rat 有理近似
format compact 禁止一些換行符
format loose 重置為較不緊湊的顯示模式

向量,矩陣和數(shù)組命令

下表顯示了用于處理數(shù)組,矩陣和向量的各種命令

命令 描述說明
cat 連接數(shù)組
find 查找非零元素的索引
length 計算元素數(shù)量
linspace 創(chuàng)建規(guī)則間隔的向量
logspace 創(chuàng)建對數(shù)間隔向量
max 返回最大的元素
min 返回最小的元素
prod 產生的每列
reshape 改變大小
size 計算數(shù)組大小
sort 對每列進行排序
sum 對每列進行求和
eye 創(chuàng)建一個單位矩陣
ones 創(chuàng)建一個數(shù)組
zeros 創(chuàng)建一個零的數(shù)組
cross 計算矩陣交叉積
dot 計算矩陣點積
det 計算數(shù)組的行列式
inv 計算矩陣的倒數(shù)
pinv 計算矩陣的偽逆
rank 計算矩陣的秩
rref 計算簡化行階梯形式
cell 創(chuàng)建單元格數(shù)組
celldisp 顯示單元格數(shù)組
cellplot 顯示單元格陣列的圖形表示
num2cell 將數(shù)組轉換為單元格數(shù)組
deal 匹配輸入和輸出列表
iscell 識別單元格數(shù)組

繪圖命令

MATLAB提供了許多用于繪制圖形的命令。下表顯示了一些常用的繪圖命令

命令 描述說明
axis 設置軸限制
fplot 智能繪圖功能
grid 顯示網(wǎng)格線
plot 生成xy坐標圖
print 打印或繪圖到文件
title 在文字的頂部放置文字
xlabel 將文本標簽添加到x
ylabel 將文本標簽添加到y
axes 創(chuàng)建軸對象
close 關閉當前坐標圖
close all 關閉所有坐標圖
figure 打開一個新的圖形窗口
gtext 通過鼠標啟用標簽放置
hold 凍結當前坐標圖
legend 通過鼠標圖例位置
refresh 重新繪制當前圖形窗口
set 指定諸如軸的對象的屬性
subplot 在子窗口中創(chuàng)建圖
text 在圖開放置字符串
bar 創(chuàng)建條形圖
loglog 創(chuàng)建日志記錄圖
polar 創(chuàng)建極坐標圖
semilogx 創(chuàng)建半標記圖(對數(shù)橫坐標)
semilogy 創(chuàng)建半標記圖(對數(shù)縱坐標)
stairs 創(chuàng)建梯形圖
stem 創(chuàng)建莖圖

.M文件

MATLAB允許編寫兩種程序文件

  • 腳本
    • 腳本文件是以.m擴展名的程序文件
    • 在這些文件中,可以編寫一系列要一起執(zhí)行的命令
    • 腳本不接受輸入,不返回任何輸出
    • 它們對工作空間中的數(shù)據(jù)進行操作
  • 函數(shù)
    • 函數(shù)文件也是擴展名為.m的程序文件。函數(shù)可以接受輸入和返回輸出
    • 內部變量是函數(shù)的局部變量

要創(chuàng)建腳本文件,需要使用文本編輯器??梢酝ㄟ^兩種方式打開MATLAB編輯器:

  • 使用命令提示符
  • 使用IDE
  1. 如果使用命令提示符,請在命令提示符下鍵入edit并回車,這將打開編輯器
  2. 可以直接鍵入edit,然后直接輸入文件名(擴展名為.m)
edit 
%或者
edit newfile.m

上述命令將在默認的MATLAB目錄中創(chuàng)建該文件。如果要將所有程序文件存儲在特定文件夾中,則必須提供整個路徑

在命令行中也可以創(chuàng)建文件夾,如:創(chuàng)建一個名為worksplace的文件夾。在命令提示符下鍵入以下命令>>

mkdir worksplace    % create directory progs under default directory
chdir worksplace    % changing the current directory to progs
edit  worksplace.m  % creating an m file named prog1.m

如果使用IDE,請選擇新建 -> 腳本。 這也打開編輯器并創(chuàng)建一個名為Untitled的文件。在輸入代碼后命名并保存文件。

在編輯器中鍵入以下代碼 -

NoOfStudents = 6000;
TeachingStaff = 150;
NonTeachingStaff = 20;
Total = NoOfStudents + TeachingStaff ... 
        + NonTeachingStaff;
disp(Total);

創(chuàng)建并保存文件后,可以通過兩種方式運行

  • 單擊編輯器窗口上的運行按鈕
  • 只需在命令提示符下鍵入文件名(無擴展名)即可:>> worksplace

MATLAB數(shù)據(jù)類型

MATLAB提供15基本數(shù)據(jù)類型。每種數(shù)據(jù)類型存儲矩陣數(shù)組形式的數(shù)據(jù)。矩陣或數(shù)組的最小值是00,并且是可以到任何大小的矩陣或數(shù)組

下表顯示了MATLAB中最常用的數(shù)據(jù)類型

數(shù)據(jù)類型 描述
int8 8位有符號整數(shù)
uint8 8位無符號整數(shù)
int16 16位有符號整數(shù)
uint16 16位無符號整數(shù)
int32 32位有符號整數(shù)
uint32 32位無符號整數(shù)
int64 64位有符號整數(shù)
uint64 64位無符號整數(shù)
single 單精度數(shù)值數(shù)據(jù)
double 雙精度數(shù)值數(shù)據(jù)
logical 邏輯值為10,分別代表truefalse
char 字符數(shù)據(jù)(字符串作為字符向量存儲)
單元格陣列 索引單元陣列,每個都能夠存儲不同維數(shù)和數(shù)據(jù)類型的數(shù)組
結構體 C型結構,每個結構具有能夠存儲不同維數(shù)和數(shù)據(jù)類型的數(shù)組的命名字段
函數(shù)處理 指向一個函數(shù)的指針
用戶類 用戶定義的類構造的對象
Java類 從Java類構造的對象

示例

>> str = 'Hello World!'
>> n = 2345
>> d = double(n)
>> un = uint32(789.50)
>> rn = 5678.92347
>> c = int32(rn)


str =
    'Hello World!'

n =
        2345

d =
        2345

un =
  uint32
   790

rn =
   5.6789e+03

c =
  int32
   5679

數(shù)據(jù)類型轉換

MATLAB提供了各種用于將一種數(shù)據(jù)類型轉換為另一種數(shù)據(jù)類型的函數(shù)

函數(shù) 描述說明
char 轉換為字符數(shù)組(字符串)
int2str 將整數(shù)數(shù)據(jù)轉換為字符串
mat2str 將矩陣轉換為字符串
num2str 將數(shù)字轉換為字符串
str2double 將字符串轉換為雙精度值
str2num 將字符串轉換為數(shù)字
native2unicode 將數(shù)字字節(jié)轉換為Unicode字符
unicode2native 將Unicode字符轉換為數(shù)字字節(jié)
base2dec 將基數(shù)N字符串轉換為十進制數(shù)
bin2dec 將二進制數(shù)字串轉換為十進制數(shù)
dec2base 將十進制轉換為字符串中的N數(shù)字
dec2bin 將十進制轉換為字符串中的二進制數(shù)
dec2hex 將十進制轉換為十六進制數(shù)字
hex2dec 將十六進制數(shù)字字符串轉換為十進制數(shù)
hex2num 將十六進制數(shù)字字符串轉換為雙精度數(shù)字
num2hex 將單數(shù)轉換為IEEE十六進制字符串
cell2mat 將單元格數(shù)組轉換為數(shù)組
cell2struct 將單元格數(shù)組轉換為結構數(shù)組
cellstr 從字符數(shù)組創(chuàng)建字符串數(shù)組
mat2cell 將數(shù)組轉換為具有潛在不同大小的單元格的單元陣列
num2cell 將數(shù)組轉換為具有一致大小的單元格的單元陣列
struct2cell 將結構轉換為單元格數(shù)組

數(shù)據(jù)類型確定

MATLAB提供了用于識別變量數(shù)據(jù)類型的各種函數(shù)。

函數(shù) 描述說明
is 檢測狀態(tài)
isa 確定輸入是否是指定類的對象
iscell 確定輸入是單元格數(shù)組
iscellstr 確定輸入是字符串的單元格數(shù)組
ischar 確定項目是否是字符數(shù)組
isfield 確定輸入是否是結構數(shù)組字段
isfloat 確定輸入是否為浮點數(shù)組
ishghandle 確定是否用于處理圖形對象句柄
isinteger 確定輸入是否為整數(shù)數(shù)組
isjava 確定輸入是否為Java對象
islogical 確定輸入是否為邏輯數(shù)組
isnumeric 確定輸入是否是數(shù)字數(shù)組
isobject 確定輸入是否為MATLAB對象
isreal 檢查輸入是否為實數(shù)數(shù)組
isscalar 確定輸入是否為標量
isstr 確定輸入是否是字符數(shù)組
isstruct 確定輸入是否是結構數(shù)組
isvector 確定輸入是否為向量
class 確定對象的類
validateattributes 檢查數(shù)組的有效性
whos 在工作區(qū)中列出變量,其大小和類型

示例

使用以下代碼創(chuàng)建腳本文件

x = 3
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)

x = 23.54
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)

x = [1 2 3]
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)

x = 'Hello'
isinteger(x)
isfloat(x)
isvector(x)
isscalar(x)
isnumeric(x)

result is

x = 3
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1

x = 23.5400
ans = 0
ans = 1
ans = 1
ans = 1
ans = 1

x =
          1          2          3
ans = 0
ans = 1
ans = 1
ans = 0

x = 'Hello'
ans = 0
ans = 0
ans = 1
ans = 0
ans = 0

MATLAB中的運算符既可用于標量數(shù)據(jù)也可用于非標量數(shù)據(jù)

MATLAB允許以下類型的基本操作

  • 算術運算符
  • 關系運算符
  • 邏輯運算符
  • 按位運算符
  • 集合運算符

算術運算符

MATLAB允許兩種不同類型的算術運算

  • 矩陣算術運算
  • 數(shù)組算術運算
  • 矩陣算術運算與線性代數(shù)中定義的相同
  • 在一維和多維數(shù)組中,逐個元素執(zhí)行數(shù)組運算
  • 矩陣運算符和數(shù)組運算符由句點符號.區(qū)分

然而,由于對于矩陣和陣列的加減運算是相同的,因此對于這兩種情況,運算符相同

運算符 描述說明
+ 加法或一元加法運算。A + B表示相加存儲在變量AB中的值。AB必須具有相同的大小,除非是標量。 標量可以添加到任何大小的矩陣。
- 減法或一元減法運算。 A-B表示從A中減去B的值。AB必須具有相同的大小,除非是標量??梢詮娜魏未笮〉木仃囍袦p去標量。
* 矩陣乘法。 C = A * B是矩陣AB的線性代數(shù)乘積。更準確地說,執(zhí)行公式:C\left( i,j\right) =\sum ^{n}_{k=1}A\left( i,k\right) B\left( k,j\right),對于非標量AB,A的列數(shù)必須等于B的行數(shù)。標量可以乘以任何大小的矩陣。
.* 陣列乘法。 A .* B是數(shù)組AB的逐個元素乘積。AB必須具有相同的大小,除非它們之一是標量。
/ 數(shù)組乘法。A .* B是數(shù)組AB的逐個元素乘積。AB必須具有相同的大小,除非它們之一是標量。
./ 數(shù)組右除。A./B是具有元素A(i,j)/ B(i,j)的矩陣。 AB必須具有相同的大小,除非它們之一是標量。
\ 反斜杠或數(shù)組左除。如果A是一個方陣,A \ Binv(A)* B大致相同,除了以不同的方式計算。如果An×n矩陣,B是具有n個分量的列向量或具有若干這樣的列的矩陣,則X = A \ B是方程AX = B的解。如果A是不規(guī)則或幾乎單數(shù),將顯示警告消息。
.\ 陣列左除。A .\ B是具有元素B(i,j)/ A(i,j)的矩陣。AB必須具有相同的大小,除非它們之一是標量。
^ 矩陣 X ^ pXP次冪,如果p是標量。 如果p是整數(shù),則通過重復平方來計算冪值。 如果整數(shù)為負,則X首先倒置。 對于p的其他值,計算涉及特征值和特征向量,使得如果[V,D] = eig(X),則X ^ p = V * D. ^ p / V。
.^ 陣列冪值, A ^ BB(i,j)A(i,j)的冪矩陣。AB必須具有相同的大小,除非它們之一是標量。
' 矩陣轉置。 'A的線性代數(shù)轉置。對于復數(shù)矩陣,這是復共軛轉置。
.' 數(shù)組轉置。.'A的數(shù)組轉置。對于復數(shù)矩陣,這不涉及共軛。

示例

以下示例顯示了算術運算符對標量數(shù)據(jù)的使用。使用以下代碼創(chuàng)建腳本文件

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.50000
g =  2
z =  343

關系運算符

關系運算符也可以用于標量非標量數(shù)據(jù)。數(shù)組的關系運算符在兩個數(shù)組之間執(zhí)行逐個元素的比較,并返回相同大小的邏輯數(shù)組,如果為真,則元素設置為邏輯1(true),如果為假,則元素設置為邏輯0(false)。

操作符 函數(shù) 說明描述
< lt() 小于
<= le() 小于或等于
> gt() 大于
>= ge() 大于或等于
== eq() 等于
~= ne() 不等于
a = 100;
b = 200;
if (a >= b)
    max = a
else
    max = b
end

result is:

max =  200

除了上述關系運算符之外,MATLAB還提供以下用于相同目的的函數(shù)

函數(shù) 描述
eq(a, b) 測試a是否等于b
ge(a, b) 測試a是否大于或等于b
gt(a, b) 測試a是否大于b
le(a, b) 測試a是否小于或等于b
lt(a, b) 測試a是否小于b
ne(a, b) 測試a是否不等于b
isequal 測試數(shù)組以獲得相等性
isequaln 測試數(shù)組相等,將NaN值視為相等
% 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

result is

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

邏輯運算符

MATLAB提供兩種類型的邏輯運算符和函數(shù):

  • 逐元素 - 這些運算符對邏輯陣列的相應元素進行操作。
  • 短路 - 這些運算符在標量和邏輯表達式上運行。

元素邏輯運算符在邏輯數(shù)組上運行逐個元素。符號|?是邏輯數(shù)組運算符AND,ORNOT。

短路邏輯運算符允許邏輯運算短路。符號&&||是邏輯短路運算符ANDOR

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

位運算

按位運算符對位執(zhí)行,并執(zhí)行逐位運算。,|^的真值表如下

p q p&q p或q p^q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

由于我使用的是markdown的語法寫的文章,而又因為表格與|沖突,因此用代替|.
假設A = 60B = 13

現(xiàn)在以二進制格式,它們將如下所示:

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A  = 1100 0011

MATLAB提供了諸如按位與按位或以及按位非操作,移位操作等位操作的各種功能。

下表顯示了常用的按位操作:

方法 目的
bitand(a, b) 整數(shù)ab的位與AND操作
bitcmp(a) a的比特補碼
bitget(a,pos) 在整數(shù)數(shù)組a中,獲取指定的位置pos位字節(jié)
bitor(a, b) 整數(shù)ab的逐位OR操作
bitset(a, pos) 設置在指定pos處的位字節(jié)
bitshift(a, k) 返回向左移位k字節(jié),相當于乘以2^k。 k的負值對應于向右移位或除以2^k,并舍入到最接近的整數(shù)到負無窮大。任何溢出位都被截斷
bitxor(a, b) 整數(shù)ab的逐字節(jié)位XOR操作
swapbytes 交換字節(jié)排序
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

result is

c =  12
c =  61
c =  49
c =  240
c =  15

集合操作

MATLAB為集合操作提供了各種功能,如聯(lián)合,交集集合成員的測試等。

函數(shù) 描述
intersect(A,B) 設置兩個陣列的交集; 也就是返回AB共同的值。返回的值按排序順序排列。
intersect(A,B,’rows’) A的每一行和B的每一行視為單個實體,并返回AB兩者共同的行。返回矩陣的行按排序順序排列。
ismember(A,B) 返回與A相同大小的數(shù)組,其中包含1(true),其中A的元素位于B中。其他地方返回0(false)。
ismember(A,B,’rows’) A的每行和B的每一行視為單個實體,并返回一個包含1(true)的向量,其中矩陣A的行也是B行。其他返回0(false)。
issorted(A) 如果A的元素按排序順序返回邏輯1(真),否則返回邏輯0(假)。輸入A可以是一個向量,也可以是N-by-11-by-N的字符串數(shù)組。 如果Asort(A)的輸出相等,則認為A被排序。
issorted(A, ‘rows’) 如果二維矩陣A的行按排序順序返回邏輯1(真),否則返回邏輯0(假)。 如果A和排序(A)的輸出相等,則認為矩陣A被排序。
setdiff(A,B) 設置兩個數(shù)組的差異; 返回A中不在B中的值。返回的數(shù)組中的值按排序順序排列。
setdiff(A,B,’rows’) A的每一行和B的每一行視為單個實體,并從不在B中的A返回行。返回的矩陣的行按排序順序排列。'rows'選項不支持單元格數(shù)組。
setxor 設置兩個數(shù)組的異或
union 設置兩個數(shù)組的并集
unique 使數(shù)組中的值唯一

下期將會進入令人激動的基本的決策語句, 并會介紹Matlab的矩陣包括它們的用法.

References

https://www.yiibai.com/matlab/matlab_syntax.html

本人借鑒以上網(wǎng)站,并對每一個案例進行測試以及改正; 并且希望通過這幾篇文章使查閱matlab資料不在如此麻煩,有一個統(tǒng)一的整理, 輕松學習matlab.

另外,歡迎大家關注我們的微信公眾號浮生有雨禿頭路.

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容