我想递归地找到一系列矩阵中的最大值(第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循环中最大值的索引,并使用它从数组中删除值...相关推荐

  1. layui循环遍历数据_Layui之动态循环遍历出的富文本编辑器显示

    这篇记得是工作中的例子 描述: 平常的富文本显示都是根据静态的html获取id来显示,比如: 富文本内容 layui.use([ "form", "layer" ...

  2. 使用for循环遍历文件、使用while循环遍历文件

    使用for循环遍历文件 1.打开文件读 打开文件,从头到尾读完后,再执行read()就没有了 关闭后就不能读 readlines()和readline()区别: readline() :一行一行读取, ...

  3. mysql循环遍历获取_MySql多表循环遍历更新

    先给大家解释解释发表这篇博文的主要思想是: MySql数据库中存在大量的表结构,而且这些表都存在一个共同点,就是表中都有相同字段,比如id,name,city,adress,lat,lng.表中字段i ...

  4. java for循环遍历解释,三种for循环遍历

    import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class  For{ pub ...

  5. 【Linux】Shell脚本中如何使用“循环”遍历“数组”中的元素(包括MySQL的常用指令介绍)

    一.背景 实习过程中,今天mentor突然让我拉取一下远端园区数据库中的部分信息,因为包含很多不同园区的数据信息,而且要以园区为单位生成文件来对数据进行存放,因此自然是需要使用shell脚本来自动生成 ...

  6. php循环volist,ThinkPHP中循环遍历的两种方法(volist和foreach标签)

    在ThinkPHP中系统提供了两个标签来实现便利操作:volist标签和foreach标签. volist语法格式: 循环体 注意:volist是双标签语句,需要闭合. foreach语法格式: 循环 ...

  7. jquery给单选按钮赋值_jquery循环遍历radio单选按钮,并设置选中状态

    背景:自己在做项目过程中遇到的问题,现在记录一下. 需求:在ajax获取后台数据的之后,需要根据获取的数据对页面中的radio单选按钮进行选中状态设置 因为自身js功底欠佳,所以耽误了点时间,现在把方 ...

  8. java循环遍历_JAVA中循环遍历list有三种方式

    转自:https://blog.csdn.net/changjizhi1212/article/details/81036509 JAVA中循环遍历list有三种方式for循环.增强for循环(也就是 ...

  9. ajax如何循环lis,关于js中循环遍历中顺序执行多个嵌套ajax的问题

    就是业务上需要完成一个功能,这个功能需要依次调用四个接口,后面接口的参数都依赖于前一个接口的返回值. 类似这样: var objArr = "从其他逻辑获得"; for(var n ...

最新文章

  1. [C++] stack和queue的常用函数
  2. Ardino基础教程 7_蜂鸣器发声实验
  3. Qt Creator设置Meson
  4. 如何使用Spring初始化程序创建Spring Boot项目
  5. 一键Pad变电脑,安全快速的远控办公这不就来了。
  6. 苹果App Store 四年历程回顾
  7. 新元宇宙奇科幻小说每周连载《地球人奇游天球记》第十回月亮之宴
  8. 正弦稳态电路的阻抗和功率
  9. 一文聊透Netty核心引擎Reactor的运转架构
  10. 气象环境监测系统有哪些组成设备
  11. systemUI 学习记录1
  12. 22位压缩版UUID
  13. 年底了,经理们忙着做绩效评价
  14. 笔记本 ASUS A3E 改用Windows Server 2003 的几个问题
  15. windows(C语言版)——颜色拾取器
  16. hadoop自定义排序,分组排序
  17. [无用]LNC李纳川的日常NC操作
  18. 如何使从autocad转换成pdf后可搜索
  19. 自签名证书和私有CA签名的证书的区别 创建自签名证书 创建私有CA 证书类型 证书扩展名
  20. 九州云出席数字化供应链线上研讨会,共话5G边缘计算新模式

热门文章

  1. java上传和下载文件代码_JavaWeb中上传和下载文件实例代码
  2. 72年属鼠48岁有一灾2020_李半仙推算:1972年虚岁48岁属鼠人,2020年干什么最能发财??...
  3. Vuex 源码还有一些缺陷?
  4. 如何读懂并写出装逼的函数式代码 1
  5. SpringBoot详解(一)-快速入门
  6. 已知思科ASA设备漏洞仍在其新版本中存在
  7. 《Effective Java》—— 对于所有对象都通用的方法
  8. java成员变量的初始化
  9. Windows Server 2008 RemoteApp---发布应用程序
  10. Linux服务器上监控网络带宽与监控性能命令大全