日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab数组操作

發(fā)布時(shí)間:2025/4/16 循环神经网络 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab数组操作 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

有很多種方法,這里就列舉幾種,要是各位有什么想要補(bǔ)充,可以留在評(píng)論區(qū)。
一、生成:
1.直接用方括號(hào)寫

a = [1,2,3,4,5]; disp(a);

2.用:生成

a = 1:5; disp(a);

第二個(gè)版本(等差數(shù)列)

a = 1:2:10; disp(a);

3.linspace(a,b,n);[a,b] n-1等分,用那個(gè)等分點(diǎn)構(gòu)成這個(gè)序列
(一般用于畫圖)

a = linspace(1,10,3); disp(a);

4.zeros函數(shù)

a = zeros(1,10); disp(a);

5.eye函數(shù)(這個(gè)生成的是對角陣,要是不夠?qū)顷?#xff0c;就取這個(gè)對角陣的左上角)

a = eye(1,10); disp(a);

6.ones函數(shù)

a = ones(1,10); disp(a);

7.矩陣拼接生成

a = ones(1,10); b = zeros(1,10); disp([a,b]); % 同行拼接 a = ones(1,10); b = zeros(1,10); disp([a;b]); % 列拼接

8.空數(shù)組

a = []; % 這樣就完成了生成

要理解空數(shù)組的存在的意義需要一定的計(jì)算機(jī)的功底,如果沒興趣可以不用去了解的。
不過,我們還是進(jìn)入我們的應(yīng)用層面的思考:
我寫過篇關(guān)于Python中的None等的TrueFalse問題的探討文章
點(diǎn)擊這個(gè)可以查看
因此,我對這個(gè)做了類似的處理

a = []; if adisp('True'); elsedisp('False'); end

輸出的是False
情況是類似的

二、刪除行列
[]還有一個(gè)應(yīng)用就是刪除矩陣的部分

a = [1,2,3;4,5,6;7,8,9]; a([1,3],:) = []; disp(a);

這樣就刪除了第1,3行(要注意的是,matlab這里比較符合數(shù)學(xué)人的思維,不像計(jì)算機(jī)的從0計(jì)數(shù))
類似的,刪除1,2列

a = [1,2,3;4,5,6;7,8,9]; a(:,[1,2]) = []; disp(a);

三、提取和展示
提取行

a = [1,2,3;4,5,6;7,8,9]; disp(a(1,:)); a = [1,2,3;4,5,6;7,8,9]; disp(a([1,3],:));

提取列(原理類似)

a = [1,2,3;4,5,6;7,8,9]; disp(a(:,[1,3])); a = [1,2,3;4,5,6;7,8,9]; disp(a(:,1));

有趣的事

a = [1,2,3;4,5,6;7,8,9]; disp(a(1));

我一開始不太理解這樣的操作,我一看,這樣的結(jié)果居然不是第一行。
很不理解,于是,我開始了探索
我先是很好奇,那我輸入4呢?

a = [1,2,3;4,5,6;7,8,9]; disp(a(4));

結(jié)果是2
我就在想,是不是會(huì)有一個(gè)返還的機(jī)制,就是走到越界之后,就再往回走一遍。然后我就做了下面的操作。看看是不是也是2

a = [1,2,3;4,5,6;7,8,9]; disp(a(2));

結(jié)果是
4
這時(shí)候,靈機(jī)一動(dòng),我想起了矩陣有一個(gè)很騷的操作

a = [1,2,3;4,5,6;7,8,9]; disp(a(:));

這樣就是將a按列展開
輸出結(jié)果是
1
4
7
2
5
8
3
6
9
這樣看來,就很好理解了
在MATLAB內(nèi)部,在矩陣上,對于單獨(dú)的數(shù)采用類似操作方法

為了驗(yàn)證我的觀點(diǎn),我做了最好玩的一個(gè)實(shí)驗(yàn)

a = [1,2,3;4,5,6;7,8,9]; disp(a(10));

這個(gè)代碼是會(huì)報(bào)錯(cuò)的
然后輸出的錯(cuò)誤是
‘索引超出矩陣維度。’
證明了之前的觀點(diǎn)。(本人懶得看文檔了)
//======回到之前的做那個(gè)提取
還有就是提取子串(,子矩陣)

a = [1,2,3;4,5,6;7,8,9]; disp(a([1,3],[1,2]));

這樣就是拿對應(yīng)列和對應(yīng)行的方法。
要是想要拿部分列呢?比如對應(yīng)的,我要拿一個(gè)規(guī)模大于10 * 10 的前10行怎么搞?
哈哈哈,是不是就有人懵了?
其實(shí)很有趣
注意到,這種提取的是用了數(shù)組的生成的對應(yīng)項(xiàng)的
所以,我們可以用到前面的數(shù)組生成的部分方法做
如:

a = [1,2,3;4,5,6;7,8,9]; disp(a([1:3],[1,2]));

連續(xù)的三行,和第1,2列,這樣看不出來什么,但是要是規(guī)模大的時(shí)候呢?比如說是100*100的中間50行和50列組合成的東西呢?
(別告訴我,用不到emm)

a = rand(100,100); disp(a([25:75],[25:75]));

這樣就可以做到了
對了,如果你說這個(gè)是會(huì)生成51*51也對,畢竟是包括了首末的。
所以,可以根據(jù)自己的需求,進(jìn)行篩選。
生成三角陣

a = rand(3,3); disp('a = '); disp(a); disp('diag(a) = '); % 生成對角元素,作為列 disp(diag(a)); disp('tril(a) = '); % 生成上三角陣 disp(tril(a)); disp('triu(a) = '); % 生成下三角陣 disp(triu(a));

可能有些時(shí)候,由于版本不同,顯示的情況有點(diǎn)不一樣。但大致上是一致的。

總結(jié)

以上是生活随笔為你收集整理的matlab数组操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。