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

歡迎訪問 生活随笔!

生活随笔

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

循环神经网络

matlab循环遍历数组_Matlab - 访问for循环中最大值的索引,并使用它从数组中删除值...

發布時間:2023/12/6 循环神经网络 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab循环遍历数组_Matlab - 访问for循环中最大值的索引,并使用它从数组中删除值... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我想遞歸地找到一系列矩陣中的最大值(第8列,具體),然后使用該最大值的索引來設置數組中的所有值,索引最大為NaN的最大索引(對于列14:16) . 很容易找到最大值和索引,但是使用for循環為多個數組做這件事我很難過 .

如果沒有for循環,我就可以這樣做:

[C,Max] = max(wy2000(:,8));

wy2000(1:Max,14:16) = NaN;

[C,Max] = max(wy2001(:,8));

wy2001(1:Max,14:16) = NaN;

[C,Max] = max(wy2002(:,8));

wy2002(1:Max,14:16) = NaN;

等等等等...

以下是我嘗試使用for循環的兩種方法:

startyear = 2000;

endyear = 2009;

for n=startyear:endyear

currentYear = sprintf('wy%d',n);

[C,Max] = max(currentYear(:,8));

currentYear(1:Max,14:16) = NaN;

end

這是我嘗試的另一種方法,使用eval函數

for n=2000:2009;

currentYear = ['wy' int2str(n)];

var2 = ['maxswe' int2str(n)];

eval([var2 ' = max(currentYear(:,8))']);

end

在這兩種情況下,問題似乎是MATLAB不能將'currentYear'變量識別為與我已在工作區中創建的wyXXXX對應的數組 .

根據Peters的回答,這里有一些關于我的數據的更多信息 . 我開始使用名為all_data的數據矩陣,其中包含16列數據,涵蓋1982年至2012年的時間段 . 我只對2000 - 2009年期間感興趣,我也有興趣每年分析(2000年,2001年) ,...,2009) .

為了將數據分成幾年,我使用以下代碼:

for n=2000:2009;

s = datenum(n-1,10,1);

e = datenum(n,9,30);

startcell = find(TIME(:,7)==s);

endcell = find(TIME(:,7)==e);

var1 = ['wy' int2str(n)];

eval([var1 '= all_data3(startcell:endcell,:)']);

eval(['save ', var1]);

end

為了澄清,我感興趣的是10/1 / YEAR1到9/30 / YEAR2期間,而TIME是一個包含數據日期和時間的矩陣 . 所以在上面的for-loop結束時,每個水年(wy)都有一個新的矩陣 . 然后,我想找到最大積雪的日期(第8列),并從我的分析中排除該日期之前的所有數據 . 這是原始問題的來源 .

Peter的解決方案有效,但我希望找到一個更簡單的解決方案來找到最大日期并將該日期之前的值設置為NaN,而不必聲明一堆變量(或單元數組中的條目) .

如果我可以編寫一個循環來創建Peter建議的基于開始和結束年份的單元格數組,那將使代碼可以轉移到其他數據集,但是當我嘗試這樣做時,我遇到的問題是索引為cell-array是1:length(years),但wy數組是根據實際年份命名的,因此使用eval函數時會出現不一致 .

馬特

總結

以上是生活随笔為你收集整理的matlab循环遍历数组_Matlab - 访问for循环中最大值的索引,并使用它从数组中删除值...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。