MATLAB基础——关于数组(一)
變量和數組
MATLAB程序的基本數據單元是數組,標量在MATLAB中也被當做數組來處理
數組可以定義為向量(一般描述為一維數組)或矩陣(一般描述為二維或多維)
訪問數組中的元素:數組名+()
MATLAB變量名的命名:以字母開頭,可跟字母、數字、下劃線,只有前31個字符有效
區分字母的大小寫
強類型語言
像C語言一樣:
int a; double b;弱類型語言
像Matlab、Python一樣:
c = 'l am a student' % 不需要給變量設定一個變量類型 % 而只需通過復制形式創建類型,且變量類型取決于創建時的類型變量的初始化
賦值語句初始化
input函數從鍵盤輸入初始化變量
ans=0 說明輸入的不是一個整形
從文件讀取一個數據
賦值輸入
一個數組的每行元素的個數必須完全相同,每一列元素的個數也必須完全相同
對數組中元素的訪問,采用 數組名 (number)的形式,number是從1開始。
a1=[0,2,4];
b=[a1(2) a1];
b
b =
2 0 2 4定義數組的時候不是每個元素都要定義
c(2,3)=5
c =
0 0 00 0 5指定數組中的一個元素賦值,其余默認為零
如果給一個數組賦值的元素超出了數組的大小的話,會新創一個數組(語文水平不高,還是matlab菜鳥,見諒,不懂看一下代碼就曉得了)
d=[1,4]
d =
1 4d(3)=8
d =
1 4 8每個語句的末尾分號用來緊致變量值在命令窗口的重復
表達式賦值
matlab中的克隆運算符為:first:incr:last(起始位置,步長,終止位置)
x=1:2:10
x =
1 3 5 7 9類似于Python中的切片
a = [1,2,3,4,5,6,7,8]for i in a[::-1]:print(i)結果為:8 7 6 5 4 3 2 1
但是Python中的第一個是起始位置,第二個是終止位置,最后一個是步長
matlab中的0.01表示注意
x=(.01:.01:.1)*pi
% 該式子的起始是0.01 步長為0.01,終止位置為0.1
x =
1 至 8 列
0.0314 0.0628 0.0942 0.1257 0.1571 0.1885 0.2199 0.25139 至 10 列
0.2827 0.3142轉置運算符 '(英文單引號)
d=[1:5]
d =
1 2 3 4 5h=[d’]
h =
12345zeros函數(全零矩陣)
a=zeros(2)
a =
0 00 0% 如果只有一個參數則生成n階矩陣,如果給了m,n兩個參數則生成mXn矩陣
b=zeros(2,4)
b =
0 0 0 00 0 0 0ones(n) and one(m,n)
一個參數,生成n階一矩陣
兩個參數,生成mXn矩陣,eye函數相同
創建一個全1矩陣
a=ones(3)
a =
1 1 11 1 11 1 1a=ones(3,4)
a =
1 1 1 11 1 1 11 1 1 1b=eye(2)
eye(n) and eye(m,n)
生成單位矩陣
b =
b=eye(2,3)
b =
1 0 00 1 0向量或數組的長度(取最大值)
length(b)
ans =
3size(矩陣的大小)
size(b)
ans =
2 3矩陣、數組、向量
A=[1,2;3,4;5,6]
A =
1 23 45 6B=[1,2,3,4]
B =
1 2 3 4C=[B’]
C =
1234A是2X3的矩陣,B是一個一維行向量,C是一個一維行向量
多維數組
c(:,:,1)=[1,2,3;4,5,6] c1(:,:,2)=[1,2,3;4,5,6]c =
1 2 34 5 6whos c
Name Size Bytes Class Attributes
c 2x3 48 double
c1(:,:,2) =
whos c1
Name Size Bytes Class Attributes
c1 2x3x2 96 double
MATLAB中以列主導順序分類數組中的元素
a=[1,2,3;4,5,6;7,8,9;10,11,12]
a =
1 2 34 5 67 8 9 10 11 12a(4)
ans =
10a(2)
ans =
4a(5)
ans =
2a(1,2)
ans =
2a(4,1)
ans =
10數組名(object),object可以是一個數字(第幾個),也可以是兩個數字(幾行幾列)
子數組
使用克隆運算符
a(:,1:1:3)
ans =
1 2 34 5 67 8 9 10 11 12a(:,1:2:3)
ans =
1 34 67 9 10 12a(:,1:3:3)
ans =
147 10a(1,:)
ans =
1 2 3a(2,:)
ans =
4 5 6a(3,:)
ans =
7 8 9a(4,:)
ans =
10 11 12a(5,:)
索引超出矩陣維度。
a(:,1)
ans =
147 10a(:,2)
ans =
258 11a(:,3)
ans =
369 12a(:,4)
索引超出矩陣維度。
end函數
a
a =
1 2 34 5 67 8 9 10 11 12a(3:end,3:end)
ans =
9 12這里的a(行,列),類似于Python中的索引(切片)
x=[1,2,3,4,5,6,7,8] print(x[3:])
將會從下標為3的元素開始直到結束
更改數組元素的值
子數組賦值只會改變部分值,如果直接賦值則會先把該數組原有內容刪除,再賦新值
a
a =
1 2 34 5 67 8 9 10 11 12a(1:3,[2,3])=[22,33;55,66;88,99]
% 1:3 表示1到3行,[2,3]表示2到3列剩下的為更換的值,更換的值也可以用一個數字表示,則所要更改的元素都為該數字
a =
總結
以上是生活随笔為你收集整理的MATLAB基础——关于数组(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智慧工业:RFID智能资产管理,RFID
- 下一篇: 富文本编辑器simditor的使用