matlab 思维数组_matlab多维数组
1.
一個三維數組由行、
列和頁三維組成,
其中每一頁包含一個由行和列構成的二
維數組。
2.
利用標準數組函數創建多維數組
A=zeros(4,3,2)
生成一個
4
行
3
列
2
頁的三維全
0
數組,
ones
,
rand
和
randn
等函數有相似的用法。
3.
利用直接索引方式生成多維數組
A=zeros(2,3)
A(:,:,2)=ones(2,3)
A(:,:,3)=4
上面的代碼先生成一個二維數組作為三維數組的第一頁,然后通過數組直接索
引,添加第二頁、第三頁。
4.
利用函數
reshape
和
repmat
生成多維數組
B=reshape(A,2,9)
B=[A(:,:,1)?A(:,:,2)?A(:,:,3)]?%
結果與上面一樣。
reshape(B,2,3,3)
reshape(B,[2?3?3])?%
結果與上面一樣。
提示:
reshape
函數可以將任何維數的數組轉變成其他維數的數組。
5.
利用
repmat
函數生成多維數組
C=ones(2,3)
repmat(C,[1
1
3])
%
repmat
寫出類似
reshape
的
repmat(C,1,1,3)
將顯示出錯
提示:
repmat
是通過數組復制創建多維數組的,上面的代碼即是將數組
C
在行
維和列維分別復制一次,然后再頁維復制三次得到
2
×
3
×
3
的三維數組。
6.
利用
cat
函數創建多維數組
a=zeros(2);
b=ones(2);
c=repmat(2,2,2);
D=cat(3,a,b,c)%
創建三維數組
D=cat(4,a,b,c)?%
創建
4
維數組。
D(:,1,:,:)?%
查看第一列的數據。
size(D)?%
可以知道數組
D
的具體維數。
6.
數組運算與處理
數組之間的運算要求兩個數組在任何一維都必須具有相同的大小。
(
1
)
squeeze
函數用于刪除多維數組中的單一維(即大小為
1
的那些維)
E=squeeze(D)
size(D)?E
的數據和
D
一樣,但比
D
少了一維,只有
2
行、
2
列和
3
頁。
(
2
)
reshape
函數可以將一個三維向量變成一維向量。
v(1,1,:)=1:6
squeeze(v)
v(:)
(
3
)
reshape
函數用于改變多維數組的行、列、頁以及更高階的維數,但不改
變數組元素的總個數。
F=cat(3,2+zeros(2,4),ones(2,4),zeros(2,4))
G=reshape(F,[3,2,4])
H=reshape(F,[4?3?2])
或
K=reshape(F,2,12)
1.
一個三維數組由行、
列和頁三維組成,
其中每一頁包含一個由行和列構成的二
維數組。
2.
利用標準數組函數創建多維數組
A=zeros(4,3,2)
生成一個
4
行
3
列
2
頁的三維全
0
數組,
ones
,
rand
和
randn
等函數有相似的用法。
3.
利用直接索引方式生成多維數組
A=zeros(2,3)
A(:,:,2)=ones(2,3)
A(:,:,3)=4
上面的代碼先生成一個二維數組作為三維數組的第一頁,然后通過數組直接索
引,添加第二頁、第三頁。
4.
利用函數
reshape
和
repmat
生成多維數組
B=reshape(A,2,9)
B=[A(:,:,1)?A(:,:,2)?A(:,:,3)]?%
結果與上面一樣。
reshape(B,2,3,3)
reshape(B,[2?3?3])?%
結果與上面一樣。
提示:
reshape
函數可以將任何維數的數組轉變成其他維數的數組。
5.
利用
repmat
函數生成多維數組
C=ones(2,3)
repmat(C,[1
1
3])
%
repmat
寫出類似
reshape
的
repmat(C,1,1,3)
將顯示出錯
提示:
repmat
是通過數組復制創建多維數組的,上面的代碼即是將數組
C
在行
維和列維分別復制一次,然后再頁維復制三次得到
2
×
3
×
3
的三維數組。
6.
利用
cat
函數創建多維數組
a=zeros(2);
b=ones(2);
c=repmat(2,2,2);
D=cat(3,a,b,c)%
創建三維數組
D=cat(4,a,b,c)?%
創建
4
維數組。
D(:,1,:,:)?%
查看第一列的數據。
size(D)?%
可以知道數組
D
的具體維數。
6.
數組運算與處理
數組之間的運算要求兩個數組在任何一維都必須具有相同的大小。
(
1
)
squeeze
函數用于刪除多維數組中的單一維(即大小為
1
的那些維)
E=squeeze(D)
size(D)?E
的數據和
D
一樣,但比
D
少了一維,只有
2
行、
2
列和
3
頁。
(
2
)
reshape
函數可以將一個三維向量變成一維向量。
v(1,1,:)=1:6
squeeze(v)
v(:)
(
3
)
reshape
函數用于改變多維數組的行、列、頁以及更高階的維數,但不改
變數組元素的總個數。
F=cat(3,2+zeros(2,4),ones(2,4),zeros(2,4))
G=reshape(F,[3,2,4])
H=reshape(F,[4?3?2])
或
K=reshape(F,2,12)
1.
一個三維數組由行、
列和頁三維組成,
其中每一頁包含一個由行和列構成的二
維數組。
2.
利用標準數組函數創建多維數組
A=zeros(4,3,2)
生成一個
4
行
3
列
2
頁的三維全
0
數組,
ones
,
rand
和
randn
等函數有相似的用法。
3.
利用直接索引方式生成多維數組
A=zeros(2,3)
A(:,:,2)=ones(2,3)
A(:,:,3)=4
上面的代碼先生成一個二維數組作為三維數組的第一頁,然后通過數組直接索
引,添加第二頁、第三頁。
4.
利用函數
reshape
和
repmat
生成多維數組
B=reshape(A,2,9)
B=[A(:,:,1)?A(:,:,2)?A(:,:,3)]?%
結果與上面一樣。
reshape(B,2,3,3)
reshape(B,[2?3?3])?%
結果與上面一樣。
提示:
reshape
函數可以將任何維數的數組轉變成其他維數的數組。
5.
利用
repmat
函數生成多維數組
C=ones(2,3)
repmat(C,[1
1
3])
%
repmat
寫出類似
reshape
的
repmat(C,1,1,3)
將顯示出錯
提示:
repmat
是通過數組復制創建多維數組的,上面的代碼即是將數組
C
在行
維和列維分別復制一次,然后再頁維復制三次得到
2
×
3
×
3
的三維數組。
6.
利用
cat
函數創建多維數組
a=zeros(2);
b=ones(2);
c=repmat(2,2,2);
D=cat(3,a,b,c)%
創建三維數組
D=cat(4,a,b,c)?%
創建
4
維數組。
D(:,1,:,:)?%
查看第一列的數據。
size(D)?%
可以知道數組
D
的具體維數。
6.
數組運算與處理
數組之間的運算要求兩個數組在任何一維都必須具有相同的大小。
(
1
)
squeeze
函數用于刪除多維數組中的單一維(即大小為
1
的那些維)
E=squeeze(D)
size(D)?E
的數據和
D
一樣,但比
D
少了一維,只有
2
行、
2
列和
3
頁。
(
2
)
reshape
函數可以將一個三維向量變成一維向量。
v(1,1,:)=1:6
squeeze(v)
v(:)
(
3
)
reshape
函數用于改變多維數組的行、列、頁以及更高階的維數,但不改
變數組元素的總個數。
F=cat(3,2+zeros(2,4),ones(2,4),zeros(2,4))
G=reshape(F,[3,2,4])
H=reshape(F,[4?3?2])
或
K=reshape(F,2,12)
1.
一個三維數組由行、
列和頁三維組成,
其中每一頁包含一個由行和列構成的二
維數組。
2.
利用標準數組函數創建多維數組
A=zeros(4,3,2)
生成一個
4
行
3
列
2
頁的三維全
0
數組,
ones
,
rand
和
randn
等函數有相似的用法。
3.
利用直接索引方式生成多維數組
A=zeros(2,3)
A(:,:,2)=ones(2,3)
A(:,:,3)=4
上面的代碼先生成一個二維數組作為三維數組的第一頁,然后通過數組直接索
引,添加第二頁、第三頁。
4.
利用函數
reshape
和
repmat
生成多維數組
B=reshape(A,2,9)
B=[A(:,:,1)?A(:,:,2)?A(:,:,3)]?%
結果與上面一樣。
reshape(B,2,3,3)
reshape(B,[2?3?3])?%
結果與上面一樣。
提示:
reshape
函數可以將任何維數的數組轉變成其他維數的數組。
5.
利用
repmat
函數生成多維數組
C=ones(2,3)
repmat(C,[1
1
3])
%
repmat
寫出類似
reshape
的
repmat(C,1,1,3)
將顯示出錯
提示:
repmat
是通過數組復制創建多維數組的,上面的代碼即是將數組
C
在行
維和列維分別復制一次,然后再頁維復制三次得到
2
×
3
×
3
的三維數組。
6.
利用
cat
函數創建多維數組
a=zeros(2);
b=ones(2);
c=repmat(2,2,2);
D=cat(3,a,b,c)%
創建三維數組
D=cat(4,a,b,c)?%
創建
4
維數組。
D(:,1,:,:)?%
查看第一列的數據。
size(D)?%
可以知道數組
D
的具體維數。
6.
數組運算與處理
數組之間的運算要求兩個數組在任何一維都必須具有相同的大小。
(
1
)
squeeze
函數用于刪除多維數組中的單一維(即大小為
1
的那些維)
E=squeeze(D)
size(D)?E
的數據和
D
一樣,但比
D
少了一維,只有
2
行、
2
列和
3
頁。
(
2
)
reshape
函數可以將一個三維向量變成一維向量。
v(1,1,:)=1:6
squeeze(v)
v(:)
(
3
)
reshape
函數用于改變多維數組的行、列、頁以及更高階的維數,但不改
變數組元素的總個數。
F=cat(3,2+zeros(2,4),ones(2,4),zeros(2,4))
G=reshape(F,[3,2,4])
H=reshape(F,[4?3?2])
或
K=reshape(F,2,12)
1.
一個三維數組由行、
列和頁三維組成,
其中每一頁包含一個由行和列構成的二
維數組。
2.
利用標準數組函數創建多維數組
A=zeros(4,3,2)
生成一個
4
行
3
列
2
頁的三維全
0
數組,
ones
,
rand
和
randn
等函數有相似的用法。
3.
利用直接索引方式生成多維數組
A=zeros(2,3)
A(:,:,2)=ones(2,3)
A(:,:,3)=4
上面的代碼先生成一個二維數組作為三維數組的第一頁,然后通過數組直接索
引,添加第二頁、第三頁。
4.
利用函數
reshape
和
repmat
生成多維數組
B=reshape(A,2,9)
B=[A(:,:,1)?A(:,:,2)?A(:,:,3)]?%
結果與上面一樣。
reshape(B,2,3,3)
reshape(B,[2?3?3])?%
結果與上面一樣。
提示:
reshape
函數可以將任何維數的數組轉變成其他維數的數組。
5.
利用
repmat
函數生成多維數組
C=ones(2,3)
repmat(C,[1
1
3])
%
repmat
寫出類似
reshape
的
repmat(C,1,1,3)
將顯示出錯
提示:
repmat
是通過數組復制創建多維數組的,上面的代碼即是將數組
C
在行
維和列維分別復制一次,然后再頁維復制三次得到
2
×
3
×
3
的三維數組。
6.
利用
cat
函數創建多維數組
a=zeros(2);
b=ones(2);
c=repmat(2,2,2);
D=cat(3,a,b,c)%
創建三維數組
D=cat(4,a,b,c)?%
創建
4
維數組。
D(:,1,:,:)?%
查看第一列的數據。
size(D)?%
可以知道數組
D
的具體維數。
6.
數組運算與處理
數組之間的運算要求兩個數組在任何一維都必須具有相同的大小。
(
1
)
squeeze
函數用于刪除多維數組中的單一維(即大小為
1
的那些維)
E=squeeze(D)
size(D)?E
的數據和
D
一樣,但比
D
少了一維,只有
2
行、
2
列和
3
頁。
(
2
)
reshape
函數可以將一個三維向量變成一維向量。
v(1,1,:)=1:6
squeeze(v)
v(:)
(
3
)
reshape
函數用于改變多維數組的行、列、頁以及更高階的維數,但不改
變數組元素的總個數。
F=cat(3,2+zeros(2,4),ones(2,4),zeros(2,4))
G=reshape(F,[3,2,4])
H=reshape(F,[4?3?2])
或
1.
一個三維數組由行、
列和頁三維組成,
其中每一頁包含一個由行和列構成的二
維數組。
2.
利用標準數組函數創建多維數組
A=zeros(4,3,2)
生成一個
4
行
3
列
2
頁的三維全
0
數組,
ones
,
rand
和
randn
等函數有相似的用法。
3.
利用直接索引方式生成多維數組
A=zeros(2,3)
A(:,:,2)=ones(2,3)
A(:,:,3)=4
上面的代碼先生成一個二維數組作為三維數組的第一頁,然后通過數組直接索
引,添加第二頁、第三頁。
4.
利用函數
reshape
和
repmat
生成多維數組
B=reshape(A,2,9)
B=[A(:,:,1)?A(:,:,2)?A(:,:,3)]?%
結果與上面一樣。
reshape(B,2,3,3)
reshape(B,[2?3?3])?%
結果與上面一樣。
提示:
reshape
函數可以將任何維數的數組轉變成其他維數的數組。
5.
利用
repmat
函數生成多維數組
C=ones(2,3)
repmat(C,[1
1
3])
%
repmat
寫出類似
reshape
的
repmat(C,1,1,3)
將顯示出錯
提示:
repmat
是通過數組復制創建多維數組的,上面的代碼即是將數組
C
在行
維和列維分別復制一次,然后再頁維復制三次得到
2
×
3
×
3
的三維數組。
6.
利用
cat
函數創建多維數組
a=zeros(2);
b=ones(2);
c=repmat(2,2,2);
D=cat(3,a,b,c)%
創建三維數組
D=cat(4,a,b,c)?%
創建
4
維數組。
D(:,1,:,:)?%
查看第一列的數據。
size(D)?%
可以知道數組
D
的具體維數。
6.
數組運算與處理
數組之間的運算要求兩個數組在任何一維都必須具有相同的大小。
(
1
)
squeeze
函數用于刪除多維數組中的單一維(即大小為
1
的那些維)
E=squeeze(D)
size(D)?E
的數據和
D
一樣,但比
D
少了一維,只有
2
行、
2
列和
3
頁。
(
2
)
reshape
函數可以將一個三維向量變成一維向量。
v(1,1,:)=1:6
squeeze(v)
v(:)
(
3
)
reshape
函數用于改變多維數組的行、列、頁以及更高階的維數,但不改
變數組元素的總個數。
F=cat(3,2+zeros(2,4),ones(2,4),zeros(2,4))
G=reshape(F,[3,2,4])
H=reshape(F,[4?3?2])
或
K=reshape(F,2,12)
1.
一個三維數組由行、
列和頁三維組成,
其中每一頁包含一個由行和列構成的二
維數組。
2.
利用標準數組函數創建多維數組
A=zeros(4,3,2)
生成一個
4
行
3
列
2
頁的三維全
0
數組,
ones
,
rand
和
randn
等函數有相似的用法。
3.
利用直接索引方式生成多維數組
A=zeros(2,3)
A(:,:,2)=ones(2,3)
A(:,:,3)=4
上面的代碼先生成一個二維數組作為三維數組的第一頁,然后通過數組直接索
引,添加第二頁、第三頁。
4.
利用函數
reshape
和
repmat
生成多維數組
B=reshape(A,2,9)
B=[A(:,:,1)?A(:,:,2)?A(:,:,3)]?%
結果與上面一樣。
reshape(B,2,3,3)
reshape(B,[2?3?3])?%
結果與上面一樣。
提示:
reshape
函數可以將任何維數的數組轉變成其他維數的數組。
5.
利用
repmat
函數生成多維數組
C=ones(2,3)
repmat(C,[1
1
3])
%
repmat
寫出類似
reshape
的
repmat(C,1,1,3)
將顯示出錯
提示:
repmat
是通過數組復制創建多維數組的,上面的代碼即是將數組
C
在行
維和列維分別復制一次,然后再頁維復制三次得到
2
×
3
×
3
的三維數組。
6.
利用
cat
函數創建多維數組
a=zeros(2);
b=ones(2);
c=repmat(2,2,2);
D=cat(3,a,b,c)%
創建三維數組
D=cat(4,a,b,c)?%
創建
4
維數組。
D(:,1,:,:)?%
查看第一列的數據。
size(D)?%
可以知道數組
D
的具體維數。
6.
數組運算與處理
數組之間的運算要求兩個數組在任何一維都必須具有相同的大小。
(
1
)
squeeze
函數用于刪除多維數組中的單一維(即大小為
1
的那些維)
E=squeeze(D)
size(D)?E
的數據和
D
一樣,但比
D
少了一維,只有
2
行、
2
列和
3
頁。
(
2
)
reshape
函數可以將一個三維向量變成一維向量。
v(1,1,:)=1:6
squeeze(v)
v(:)
(
3
)
reshape
函數用于改變多維數組的行、列、頁以及更高階的維數,但不改
變數組元素的總個數。
F=cat(3,2+zeros(2,4),ones(2,4),zeros(2,4))
G=reshape(F,[3,2,4])
H=reshape(F,[4?3?2])
或
K=reshape(F,2,12)
1.
一個三維數組由行、
列和頁三維組成,
其中每一頁包含一個由行和列構成的二
維數組。
2.
利用標準數組函數創建多維數組
A=zeros(4,3,2)
生成一個
4
行
3
列
2
頁的三維全
0
數組,
ones
,
rand
和
randn
等函數有相似的用法。
3.
利用直接索引方式生成多維數組
A=zeros(2,3)
A(:,:,2)=ones(2,3)
A(:,:,3)=4
上面的代碼先生成一個二維數組作為三維數組的第一頁,然后通過數組直接索
引,添加第二頁、第三頁。
4.
利用函數
reshape
和
repmat
生成多維數組
B=reshape(A,2,9)
B=[A(:,:,1)?A(:,:,2)?A(:,:,3)]?%
結果與上面一樣。
reshape(B,2,3,3)
reshape(B,[2?3?3])?%
結果與上面一樣。
提示:
reshape
函數可以將任何維數的數組轉變成其他維數的數組。
5.
利用
repmat
函數生成多維數組
C=ones(2,3)
repmat(C,[1
1
3])
%
repmat
寫出類似
reshape
的
repmat(C,1,1,3)
將顯示出錯
提示:
repmat
是通過數組復制創建多維數組的,上面的代碼即是將數組
C
在行
維和列維分別復制一次,然后再頁維復制三次得到
2
×
3
×
3
的三維數組。
6.
利用
cat
函數創建多維數組
a=zeros(2);
b=ones(2);
c=repmat(2,2,2);
D=cat(3,a,b,c)%
創建三維數組
D=cat(4,a,b,c)?%
創建
4
維數組。
D(:,1,:,:)?%
查看第一列的數據。
size(D)?%
可以知道數組
D
的具體維數。
6.
數組運算與處理
數組之間的運算要求兩個數組在任何一維都必須具有相同的大小。
(
1
)
squeeze
函數用于刪除多維數組中的單一維(即大小為
1
的那些維)
E=squeeze(D)
size(D)?E
的數據和
D
一樣,但比
D
少了一維,只有
2
行、
2
列和
3
頁。
(
2
)
reshape
函數可以將一個三維向量變成一維向量。
v(1,1,:)=1:6
squeeze(v)
v(:)
(
3
)
reshape
函數用于改變多維數組的行、列、頁以及更高階的維數,但不改
變數組元素的總個數。
F=cat(3,2+zeros(2,4),ones(2,4),zeros(2,4))
G=reshape(F,[3,2,4])
H=reshape(F,[4?3?2])
或
K=reshape(F,2,12)
1.一個三維數組由行、列和頁三維組成,其中每一頁包含一個由行和列構成的二維數組。?2.利用標準數組函數創建多維數組?A=zeros(4,3,2)?生成一個4行3列2頁的三維全0數組,ones,rand和randn等函數有相似的用法。?3.利用直接索引方式生成多維數組?A=zeros(2,3)?A(:,:,2)=ones(2,3)?A(:,:,3)=4?上面的代碼先生成一個二維數組作為三維數組的第一頁,然后通過數組直接索引,添加第二頁、第三頁。?4.利用函數reshape和repmat生成多維數組?B=reshape(A,2,9)?B=[A(:,:,1)?A(:,:,2)?A(:,:,3)]?%結果與上面一樣。?reshape(B,2,3,3)?reshape(B,[2?3?3])?%結果與上面一樣。?提示:reshape函數可以將任何維數的數組轉變成其他維數的數組。?5.利用repmat函數生成多維數組?C=ones(2,3)?repmat(C,[1?1?3])?%?repmat寫出類似reshape的repmat(C,1,1,3)將顯示出錯?提示:repmat是通過數組復制創建多維數組的,上面的代碼即是將數組C在行維和列維分別復制一次,然后再頁維復制三次得到2×3×3的三維數組。?6.利用cat函數創建多維數組?a=zeros(2);?b=ones(2);?c=repmat(2,2,2);?D=cat(3,a,b,c)%創建三維數組?D=cat(4,a,b,c)?%創建4維數組。?D(:,1,:,:)?%查看第一列的數據。?size(D)?%可以知道數組D的具體維數。?6.數組運算與處理?數組之間的運算要求兩個數組在任何一維都必須具有相同的大小。?(1)squeeze函數用于刪除多維數組中的單一維(即大小為1的那些維)?E=squeeze(D)?size(D)?E的數據和D一樣,但比D少了一維,只有2行、2列和3頁。?(2)reshape函數可以將一個三維向量變成一維向量。?v(1,1,:)=1:6?squeeze(v)?v(:)?(3)reshape函數用于改變多維數組的行、列、頁以及更高階的維數,但不改變數組元素的總個數。?F=cat(3,2+zeros(2,4),ones(2,4),zeros(2,4))?G=reshape(F,[3,2,4])?H=reshape(F,[4?3?2])?或K=reshape(F,2,12)
多維數組的重組按這樣的順序:第一頁的第一列、第二列……,第二頁的第一列、第二列……。?7.sub2ind函數和ind2sub函數用于多維數組的直接引用,索引順序與重組順序一致。?sub2ind(size(F),1,1,1)?%求第1行、第1列、第1頁的數值的單一索引?sub2ind(size(F),1,2,1)?%求第1行、第2列、第1頁的數值的單一索引?sub2ind(size(F),1,2,3)?%求第1行、第2列、第3頁的數值的單一索引?[r?c?p]=ind2sub(size(F),19)?%由單一索引求其對應的行列頁數值。?8.函數flipdim用于多維數組的翻轉,相當于二維數組中的flipud和fliplr函數。例如下面的代碼進行按行、列和按頁翻轉。?M=reshape(1:18,2,3,3)?flipdim(M,1)?%每一頁中的行翻轉?flipdim(M,2)?%每一頁中的列翻轉?flipdim(M,3)?%將第一和第三頁翻轉調換?9.函數shiftdim用于循環輪換一個數組的維數。如果一個數組r行、c列和p頁,則循環輪換一次,就生成一個c行、p列和r頁的數組。?M?%重新調用?shiftdim(M,1)?%輪換一次?shiftdim(M,2)?%輪換兩次?數組輪換后規律很難直觀理解,我們可以將三維數組看成一個類似魔方的方形盒子?函數shiftdim也支持負的循環輪換次數。執行該輪換時,數組的維數增加,并且多出的維數均為單一維。?M?%重新調用?size(M)?shiftdim(M,-1)?size(ans).?10.函數permute和ipermute用于實現多維條件下的轉置操作。從本質上講permute函數是shiftdimhas函數的擴展。?M?%重新調用?permute(M,[2?3?1])?shiftdim(M,1)?%兩者結果一樣?permute函數中的參數[2?3?1]表示使函數第二維成為第一維,第三維成為第二維,第一維成為第三維。?11.?permute(M,[2?1?3])?[2?1?3]表示將數組的行列相互轉置,頁保持不變(只在第一和第二維轉置)。?permute函數的第一個參數為待轉置的數組,第二個參數為轉置順序,它必須是待轉置的多維數組的維數的某種排列,否則所進行的轉置無法進行。?permute函數也可以用來將一個數組變成更高維的數組,例如shiftdim(M,-1)也可以用permute函數來實現。?permute(M,[4?1?2?3])?這是?因為任何一個數組都具有大于其本身尺寸的更高維數,并且這些維數均為單一維數。例如二維數組具有頁這一維,只是只有一頁。總之超過數組本身大小
的維數都是單一維。M是一個三維數組,其第四維必為單一維,因此將M的第四維與第一維轉置,第一維變成了單一維。?12.二維數組兩次轉置變換回原來的形式,對于多維數組,用函數ipermute來取消permute所執行的轉置操作。?M?%重新調用?permute(M,[3?2?1])?ipermute(M,[3?2?1])?%在我的Matlab上運行沒有達到預期效果?13.size函數返回數組每一維的大小?numel函數返回數組的總元素個數?當不指定size的返回值時,將返回一個由數組的各維數組成的向量。當我們知道數組的維數時,可以將維數返回到指定變量中。?[r?c?p]=size(M)?r=size(M,1)?c=size(M,2)?p=size(M,3)?v=size(M,4)?當一個數組的維數或者某數組維數不確定時,可以利用函數ndims獲得數組的維數值。例如:ndims(M),與length(size(M))等效。?多維數組常用函數:?函數?描述?ones(r,c,…),zeros(r,c,…)?rand(r,c,…),randn(r,c,…)?創建多維數組的基本函數,分別創建全1、全0.隨機(0-1之間)和隨機正態分布的多維數
組。?reshape(B,2,3,3)?reshape(B,[2?3?3])?將一個數組變形成任意維數的數組?repmat(C,[1?1?3])?將一個數組復制成一個任意維數的數組?cat(3,a,b,c)?沿著一個指定的維將數組連接起來?squeeze(D)?刪除大小等于1的維,即單一維。?sub2ind(size(F),1,1,1)?[r,c,p]=ind2sub(size(F),19)?將下標轉化為單一索引值?將單一索引值轉化成下標?flipdim(M,1)?沿著一個指定的維輪換順序。等效于二維數組
中的flippud和fliplr函數?shiftdim(M,2)?循環輪換。第二個參數為正的情況下,進行各
維的循環輪換;若為負數,將數組的維數增加。?permute(M,[2?1?3])?iprmute(M,[2?1?3])?多維數組的轉置操作,前者為轉置操作,后者為取消轉置操作。?size(M)?[r,c,p]=size(M)?返回各維的大小?r=size(M,1)?返回行數?c=size(M,2)?返回列數?p=size(M,3)?返回頁數?ndims(M)?獲取數組的維數?numel(M)?獲取數組的元素總個數
總結
以上是生活随笔為你收集整理的matlab 思维数组_matlab多维数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ajax和rxjs,javascript
- 下一篇: python判断字符类型编程_Pytho