數組去重常見的方法,Matlab中數組的常見用法

 2023-12-25 阅读 26 评论 0

摘要:MATLAB中所有數據類型的所有變量都是多維數組。向量是一維數組,矩陣是二維數組。 MATLAB中的特殊數組 zeros()函數是用來創建一個全零的數組 例如 zeros(5) MATLAB執行上面示例代碼,得到以下結果 - Trial>> zeros(5) ans =0 0 0 0 00 0 0 0 00 0 0 0

MATLAB中所有數據類型的所有變量都是多維數組。向量是一維數組,矩陣是二維數組。

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...)

其中

  • B是創建的新陣列
  • A1,A2,…是要連接的數組
  • dim是連接數組的大小

例子
創建腳本文件并在其中鍵入以下代碼

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是單元陣列;
  • dim是一個整數或整數向量,它指定單元格數組C的維數;
  • dim1,…,dimN是指定C大小的標量整數;
  • obj是以下之一:
    – Java數組或對象
    – 類型為System.String或System.Object的.NET數組

示例


創建腳本文件并在其中鍵入以下代碼

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

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/194670.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息