MATLAB中所有數據類型的所有變量都是多維數組。向量是一維數組,矩陣是二維數組。
zeros()函數是用來創建一個全零的數組
例如
zeros(5)
MATLAB執行上面示例代碼,得到以下結果 -
Trial>> zeros(5)
ans =0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0
ones()函數創建一個所有元素為1的數組
例如
ones(4,3)
MATLAB執行上面示例代碼,得到以下結果
Trial>> ones(4,3)ans =1 1 11 1 11 1 11 1 1
數組去重常見的方法?eye()函數創建一個單位矩陣。
例如
eye(4)
執行上面示例代碼,得到以下結果
Trial>> eye(4)ans =1 0 0 00 1 0 00 0 1 00 0 0 1
rand()函數在(0,1) 上創建均勻分布的隨機數的數組
例如
rand(3, 5)
執行上面示例代碼,得到以下結果
Trial>> rand(3, 5)ans =0.8147 0.9134 0.2785 0.9649 0.95720.9058 0.6324 0.5469 0.1576 0.48540.1270 0.0975 0.9575 0.9706 0.8003
魔方是一個平方,它產生相同的和,它的元素被逐行,逐列或者對角線地添加時。
magic()函數創建一個魔術方陣。這需要一個參數,指定正方形的大小。 參數必須是大于或等于3的標量。
magic(4)
執行上面示例代碼,得到以下結果
Trial>> magic(4)ans =16 2 3 135 11 10 89 7 6 124 14 15 1
數組指針和指針數組的區別?具有二維以上的數組在MATLAB中被稱為多維數組。MATLAB中的多維數組是正常二維矩陣的擴展。
通常要生成一個多維數組,首先創建一個二維數組然后再擴展它。
例如,讓我們創建一個二維數組a。
a = [7 9 5; 6 1 9; 4 3 2]
MATLAB
執行上面示例代碼,得到以下結果
Trial>> a = [7 9 5; 6 1 9; 4 3 2]a =7 9 56 1 94 3 2
數組a是3×3數組; 可以通過提供以下值來添加第三維:
a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]
執行上面示例代碼,得到以下結果
a =ans(:,:,1) =0 0 00 0 00 0 0ans(:,:,2) =1 2 34 5 67 8 9
還可以使用ones(),zeros()或rand()函數來創建多維數組。
例如
b = rand(4,3,2)
執行上面示例代碼,得到以下結果
Trial>> b = rand(4,3,2)b(:,:,1) =0.1419 0.9595 0.93400.4218 0.6557 0.67870.9157 0.0357 0.75770.7922 0.8491 0.7431b(:,:,2) =0.3922 0.0318 0.82350.6555 0.2769 0.69480.1712 0.0462 0.31710.7060 0.0971 0.9502
matlab中的數組。也可以使用cat()函數來構建多維數組。它沿著指定的維度連接數組列表
cat()函數的語法是
B = cat(dim, A1, A2...)
其中
例子
創建腳本文件并在其中鍵入以下代碼
a = [9 8 7; 6 5 4; 3 2 1];
b = [1 2 3; 4 5 6; 7 8 9];
c = cat(3, a, b, [ 2 3 1; 4 7 8; 3 9 0])
執行上面示例代碼,得到以下結果
c(:,:,1) =9 8 76 5 43 2 1
c(:,:,2) =1 2 34 5 67 8 9
c(:,:,3) =2 3 14 7 83 9 0
MATLAB提供以下函數來對數組內容進行排序,旋轉,排列,重新成形或移位。
函數 | 描述 |
---|---|
length | 向量的大小或數組的長度 |
ndims | 數組的維數 |
numel | 數組的元素數量 |
size | 數組的維度 |
iscolumn | 確定輸入是否為列向量 |
isempty | 確定數組是否為空 |
ismatrix | 確定輸入是否為矩陣 |
isrow | 確定輸入是否為行向量 |
isscalar | 確定輸入是否為標量 |
isvector | 確定輸入是否為向量 |
blkdiag | 從輸入參數構造塊對角矩陣 |
circshift | 循環移位 |
ctranspose | 復共軛轉置 |
diag | 矩陣對角矩陣和對角線 |
flipdim | 沿著指定的尺寸翻轉數組 |
fliplr | 從左到右翻轉矩陣 |
flipud | 向下翻轉矩陣 |
ipermute | 反轉N-D陣列的置換維度 |
permute | 重新排列N-D數組的維度 |
repmat | 復制和平鋪數組 |
reshape | 重塑數組 |
rot90 | 旋轉矩陣90度 |
shiftdim | 移動維度 |
issorted | 確定設置元素是否按排序順序 |
sort | 按升序或降序排列數組元素 |
sortrows | 按升序排列行 |
squeeze | 刪除單例維度 |
transpose | 轉置 |
vectorize | 向量化表達式 |
例子
MATLAB定義數組,以下的例子說明了上面提到的一些函數。
長度,尺寸和元素數量:
創建腳本文件并鍵入以下代碼
x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9];
length(x) % length of x vector
y = rand(3, 4, 5, 2);
ndims(y) % no of dimensions in array y
s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab'];
numel(s) % no of elements in s
運行文件時,顯示以下結果
ans = 8
ans = 4
ans = 23
數組元素的循環移位
創建腳本文件并在其中鍵入以下代碼
a = [1 2 3; 4 5 6; 7 8 9] % the original array a
b = circshift(a,1) % circular shift first dimension values down by 1.
c = circshift(a,[1 -1]) % circular shift first dimension values % down by 1 % and second dimension values to the left % by 1.
運行文件文件時,顯示以下結果
a =1 2 34 5 67 8 9b =7 8 91 2 34 5 6c =8 9 72 3 15 6 4
排序數組創建腳本文件并在其中鍵入以下代碼
v = [ 23 45 12 9 5 0 19 17] % horizontal vector
sort(v) % sorting v
m = [2 6 4; 5 3 9; 2 0 1] % two dimensional array
sort(m, 1) % sorting m along the row
sort(m, 2) % sorting m along the column
運行文件文件時,顯示以下結果
v =23 45 12 9 5 0 19 17
ans =0 5 9 12 17 19 23 45
m =2 6 45 3 92 0 1
ans =2 0 12 3 45 6 9
ans =2 4 63 5 90 1 2
c++string用法?單元陣列單元格陣列是索引單元的數組,其中每個單元格可以存儲不同維度和數據類型的數組。
單元格函數用于創建單元格數組。單元格函數的語法是
C = cell(dim)
C = cell(dim1,...,dimN)
D = cell(obj)
其中
創建腳本文件并在其中鍵入以下代碼
c = cell(2, 5);
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}
運行文件時,得到以下結果
c =
{[1,1] = Red[2,1] = 1[1,2] = Blue[2,2] = 2[1,3] = Green[2,3] = 3[1,4] = Yellow[2,4] = 4[1,5] = White[2,5] = 5
}
訪問單元格數組數據有兩種方法來引用單元格數組的元素
將第一個括號()中的索引包圍,以引用單元格集將大括號{}中的索引括起來,以引用單個單元格內的數據
當將索引包圍在第一個括號中時,它指的是這組單元格。
括號中的單元格數組索引是指單元格集。
例如:
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c(1:2,1:2)
常見偽數組。運行文件時,得到以下結果
ans =
{[1,1] = Red[2,1] = 1[1,2] = Blue[2,2] = 2
}
還可以通過用花括號索引來訪問單元格的內容。
例如
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c{1, 2:4}
運行文件時,得到以下結果
ans = Blue
ans = Green
ans = Yellow
REF: https://www.yiibai.com/matlab/matlab_arrays.html
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态