1.數值型別:
1.1.整型:
(1).有符號整型:int8
int16
int32
int64
(2).無符號整型:uint8
uint16
uint32
uint64
1.2.浮點型:
(1).單精度浮點數:single
(2).雙精度浮點數:double
,預設的數值型別。
1.3.複數:
在Matlab中用i
或j
來表示虛數單位,但是通常習慣性地定義虛數單位i = sqrt(-1);
complex(a,b)
:以a爲實部,b爲虛部建立複數。
real(z)
:取複數z的實部。
imag(z)
:取複數z的虛部。
abs(z)
:取複數z的模。
angle(z)
:取複數z的輻角。
conj(z)
:取複數z的共軛複數。
1.4.取整函數:
round
:四捨五入取整。
fix
:向0取整。
floor
:向下取整。
ceil
:向上取整。
1.5.數據顯示格式:
format short
或format('short')
:系統預設形式,保留小數點後四位。
format long
或format('long')
:顯示16位元有效數位。
format short e
:有效數位5位加3位指數。
format long e
:有效數位16位元加3位指數。
format bank
或format('bank')
:保留2位小數位。
format +
或format('+')
:只給出正、負。
format rational
或format('rational')
:以分數形式表示。
format hex
:以十六進制數表示。
2.邏輯型別:
Matlab中以1代表邏輯真,用函數true
表示;用0代表邏輯假,用函數false
表示。
可以用函數logical()
將數值型轉換爲邏輯型,任何非零數值轉化爲邏輯真,數值0轉化爲邏輯假。
3.字元和字串:
字元型數據用char
表示,在Matlab中,字元和字串不進行區分,將單個字元看作是長度爲1的字串,都用單引號括起來。
4.函數控制代碼:
函數控制代碼的數據型別爲function_handle
,函數控制代碼可以通過@符號來建立,如:
fhandle = @cos;
建立了cos函數的函數控制代碼後,就可以用fhandle來間接呼叫cos()
了。
5.單元陣列型別:
單元陣列的每個元素都以單元的形式存在。
5.1.採用花括號{}建立單元陣列:
clc;clear;
c = {'中國','China';[1 2 3 4 5],100};
c{1,1}
c{2,1}
c{2,2} = []
>>ans =
'中國'
ans =
1 2 3 4 5
c =
2×2 cell 陣列
{'中國' } {'China' }
{1×5 double} {0×0 double}
5.2.用cell()
函數來建立單元陣列:
clc;clear;
c = cell(2,3);
c{1,1} = [1:3;3:5]
c{2,2} = 'China'
c{2,3} = 'Robin'
c{2,1} = 100
>>c =
2×3 cell 陣列
{2×3 double} {0×0 double} {0×0 double}
{0×0 double} {0×0 double} {0×0 double}
c =
2×3 cell 陣列
{2×3 double} {0×0 double} {0×0 double}
{0×0 double} {'China' } {0×0 double}
c =
2×3 cell 陣列
{2×3 double} {0×0 double} {0×0 double}
{0×0 double} {'China' } {'Robin' }
c =
2×3 cell 陣列
{2×3 double} {0×0 double} {0×0 double}
{[ 100]} {'China' } {'Robin' }
5.3.用celldisp()
函數顯示單元陣列的內容:
clc;clear;
c = {eye(2),'China';[1:4],100}
celldisp(c)
celldisp(c,'mycell') %給c重新命名爲mycell再顯示。
>>c =
2×2 cell 陣列
{2×2 double} {'China'}
{1×4 double} {[ 100]}
c{1,1} =
1 0
0 1
c{2,1} =
1 2 3 4
c{1,2} =
China
c{2,2} =
100
mycell{1,1} =
1 0
0 1
mycell{2,1} =
1 2 3 4
mycell{1,2} =
China
mycell{2,2} =
100
5.4.用cellplot()
函數將單元陣列以彩色圖形來顯示:
clc;clear;
c = {'中國','China';[1:4],100};
figure;
out = cellplot(c,'legend');
5.5.單元陣列的擴充、合併、刪除(不是置空):
clc;clear;
c = {'中國','China';[1:4;2:5],10};
c{2,4} = 100 %單元陣列的擴充。
c(1,:) %顯示第一行的元素。
c(:,3) = [] %刪除第3列.
d = {'北京','Beijing';[],3};
e = [c,d] %單元陣列的合併
e(2,:) = [] %刪除第2行
c =
2×4 cell 陣列
{'中國' } {'China'} {0×0 double} {0×0 double}
{2×4 double} {[ 10]} {0×0 double} {[ 100]}
ans =
1×4 cell 陣列
{'中國'} {'China'} {0×0 double} {0×0 double}
c =
2×3 cell 陣列
{'中國' } {'China'} {0×0 double}
{2×4 double} {[ 10]} {[ 100]}
e =
2×5 cell 陣列
{'中國' } {'China'} {0×0 double} {'北京' } {'Beijing'}
{2×4 double} {[ 10]} {[ 100]} {0×0 double} {[ 3]}
e =
1×5 cell 陣列
{'中國'} {'China'} {0×0 double} {'北京'} {'Beijing'}
5.6.其他關於單元陣列的函數:
num2cell
:將矩陣轉換爲單元陣列。
cell2struct
:將單元陣列轉換爲結構體。
6.結構體數據型別:
結構體是按照成員變數名組織起來的不同數據型別的集合,結構體類似於C語言的結構體數據。,每個成員變數用指針操作符「.
」表示。
6.1.直接輸入法構造結構體:
clc;clear;
stu(1).name = 'Tom';
stu(1).age = 12;
stu(1).gender = 'Male';
stu(2).name = 'Jerry';
stu(2).age = 13;
stu
stu(1)
stu(2)
>>stu =
包含以下欄位的 1×2 struct 陣列:
name
age
gender
ans =
包含以下欄位的 struct:
name: 'Tom'
age: 12
gender: 'Male'
ans =
包含以下欄位的 struct:
name: 'Jerry'
age: 13
gender: []
6.2.用struct()
函數建立結構體變數:
clc;clear;
s = struct('type',{'big','little'},'color',{'red'},'data',{[1 2 3;2 3 4]});
s(1)
s(2)
>>ans =
包含以下欄位的 struct:
type: 'big'
color: 'red'
data: [2×3 double]
ans =
包含以下欄位的 struct:
type: 'little'
color: 'red'
data: [2×3 double]
6.3.rmfield()
函數來刪除結構體中的成員變數:
clc;clear;
s = struct('type',{'big','little'},'color',{'red'},'data',{[1 2 3;2 3 4]});
s1 = rmfield(s,'color')
s2 = rmfield(s,{'type','color'})
>>s1 =
包含以下欄位的 1×2 struct 陣列:
type
data
s2 =
包含以下欄位的 1×2 struct 陣列:
data
6.4.isstruct()
函數用來判斷是否爲結構體變數,isfield()
函數來判斷是否爲結構體的成員變數:
clc;clear;
s = struct('type',{'big','little'},'color',{'red'},'data',{[1 2 3;2 3 4]});
f1 = isstruct(s)
f2 = isfield(s,'neme')
f3 = isfield(s,'type')
f4 = isfield(s,{'name','type'})
>>f1 =
logical
1
f2 =
logical
0
f3 =
logical
1
f4 =
1×2 logical 陣列
0 1
6.5.fieldnames()
函數用來獲取結構體的成員變數名字,orderfields()
函數將結構體的成員變數按照字母順序排序:
clc;clear;
s = struct('one',1,'two',2,'three',3,'four',4);
f1 = fieldnames(s)
f2 = orderfields(s)
>>f1 =
4×1 cell 陣列
{'one' }
{'two' }
{'three'}
{'four' }
f2 =
包含以下欄位的 struct:
four: 4
one: 1
three: 3
two: 2
6.6.struct2cell()
函數將結構體轉換成單元陣列型別結構:
clc;clear;
s = struct('type',{'big','little'},'color',{'red'},'data',{[1 2 3;2 3 4]});
c = struct2cell(s)
>> 3×1×2 cell 陣列
c(:,:,1) =
{'big' }
{'red' }
{2×3 double}
c(:,:,2) =
{'little' }
{'red' }
{2×3 double}
1.算數運算子:
標量和陣列運算 | 矩陣運算 | 說明 |
---|---|---|
+ |
+ |
加 |
- |
- |
減 |
.* |
* |
乘 |
./ |
/ |
左除 |
.\ |
\ |
右除 |
.^ |
^ |
乘方 |
.' |
' |
轉置 |
2.關係運算符:
關係運算符 | 說明 | 函數 |
---|---|---|
< |
小於 | lt |
<= |
小於等於 | le |
> |
大於 | gt |
>= |
大於等於 | ge |
== |
恆等於 | eq |
~= |
不等於 | ne |
3.邏輯運算子:
3.1.逐個元素的邏輯運算:
運算子 | 說明 | 函數 |
---|---|---|
& |
邏輯與 | and |
| |
邏輯或 | or |
~ |
邏輯非 | not |
邏輯互斥或 | xor |
3.2.避繞式/快速邏輯運算:
運算子 | 說明 |
---|---|
&& |
避繞式/快速邏輯與,當第一個運算元爲假時,直接返回假 |
|| |
避繞式/快速邏輯或,當第一個運算元爲真時,直接返回真 |
3.3.逐位邏輯運算:
對二進制數進行逐位邏輯運算,並將結果轉換成十進制數。
函數 | 說明 |
---|---|
bitand |
逐位邏輯與 |
bitor |
逐位邏輯或 |
bitcmp |
逐位邏輯非 |
bitxor |
逐位邏輯互斥或 |
1.calendar
函數的使用:
clc;clear;
calendar %返回當前所在月份的日曆。
d = 'Apr-2000';
calendar(d) %返回所需要的月份的日曆。
calendar(2000,2) %返回所需要的月份的日曆。
>>
Aug 2020
S M Tu W Th F S
0 0 0 0 0 0 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 0 0 0 0 0
Sep 2025
S M Tu W Th F S
0 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 0 0 0 0
0 0 0 0 0 0 0
Feb 2000
S M Tu W Th F S
0 0 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 0 0 0 0
0 0 0 0 0 0 0
2.clock
函數的用法:
>> clock %返回當前時間。
ans =
1.0e+03 *
2.0200 0.0080 0.0100 0.0130 0.0290 0.0243
3.date
函數的用法:
>> date %返回當前日期。
ans =
'10-Aug-2020'
4.計時函數:
%計算不同階數帕斯卡矩陣的逆矩陣所用的時間和階數的關係。
clc;clear;
tic
for i = 5:12
a = inv(pascal(i));
t(i - 4) = toc;
end
figure;
plot(5:12,t)
xlabel('階數');
ylabel('時間/秒');
1.Matlab系統預設常數:
常數 | 說明 |
---|---|
ANS 或ans |
儲存最後一次運算結果的預設變數名 |
pi |
圓周率 |
INF 或inf |
大於的數 |
NaN 或nan |
不定值 |
realmax |
最大的正實數 |
realmin |
最小的正實數 |
eps |
浮點數的相對誤差 |
i 或j |
虛數單位 |
nargin |
函數的輸入參數的個數 |
nargout |
函數的輸出參數的個數 |
varargin |
可變的輸入參數的個數 |
varargout |
可變的輸出參數的個數 |
beep |
使計算機發出「嘟嘟」聲 |
2.Matlab變數:
(1).變數名的長度不超過31個字元。
(2).變數名區分大小寫。
(3).變數名必須以字母開頭,其間可以包含字母、數位、下劃線。
參考資料來源於:b站up主:古德謂爾
本文作者:Aiden Lee
創作日期:2020.8
特別宣告:文字僅供學習參考,嚴禁盜用!