当前位置: 首页 > ops >正文

Matlab中的 for 与while是有区别的

在 MATLAB 中,for 循环的迭代变量 i 实际上是由循环范围控制的,也就是说,你在循环体内直接修改 i 是不会影响下一次迭代的 i。你的例子:

matlab

for i = 1:5if i == 2i = i + 1;  % 实际不会跳过下一个 iendi
end

会输出:

     12345

这是因为 for i=1:5 本质上是:

matlab

for temp = [1 2 3 4 5]i = temp;...
end

所以 i = i + 1 只是临时修改了变量,不会影响下一个 temp 的值


✅ 如果你想更灵活地控制循环(跳过某些迭代),你有两个选项:


✅ 方案 1:使用 while 循环,自己控制索引

matlab

i = 1;
while i <= 5if i == 2i = i + 1;   % 跳过 i==2 的那轮continue;enddisp(i)i = i + 1;
end

✅ 这会跳过 i==2,输出:

     1345

✅ 方案 2:提前构造好 index 列表,再 for 循环

matlab

idx = [1 3 4 5];  % 手动控制要迭代的 i
for i = idxdisp(i)
end

❌ 总结:不能直接修改 for 中的 i

方法是否支持跳过迭代是否可修改索引
for i = 1:Ncontinue 支持❌ 不能直接改 i
while 循环✅ 更灵活✅ 手动控制
自定义索引数组✅ 自由跳过✅ 完全自控

如果你告诉我你要跳过哪些索引,我可以直接给你最简代码实现。需要吗?

http://www.xdnf.cn/news/16207.html

相关文章:

  • geomtry空间索引sql查询慢优化
  • Android 的16 KB内存页设备需要硬件支持吗,还是只需要手机升级到Android15系统就可以
  • [python][基础]Flask 技术栈
  • 软件工程之可行性研究:从理论到实践的全面解析
  • JAVA知识点(四):SpringBoot与分布式、微服务架构
  • 腾讯云CodeBuddy+微信小程序:5分钟开发番茄小闹钟
  • ClickHouse 高性能实时分析数据库-物化视图篇
  • 【lucene】如何给StandardAnalyzer添加charfilter
  • P1106 删数问题 - 洛谷
  • Multiscale Structure Guided Diffusion for Image Deblurring 论文阅读
  • 用友ERP 反射xss漏洞复现(CVE-2025-2709)
  • [NLP]多电源域设计的仿真验证方法
  • Linux运维新人自用笔记(Rsync远程传输备份,服务端、邮箱和客户端配置、脚本)
  • 编译器-gcc/g++和自动化构建-make/Makefile
  • AI冲击搜索?谷歌说:恰恰相反
  • C语言第 9 天学习笔记:数组(二维数组与字符数组)
  • 优秀案例:基于python django的智能家居销售数据采集和分析系统设计与实现,使用混合推荐算法和LSTM算法情感分析
  • Java 大视界 -- 基于 Java 的大数据分布式存储在工业互联网数据管理与边缘计算协同中的创新实践(364)
  • 矩阵谱分解的证明及计算示例
  • JVM相关面试八股
  • 虚拟机docker elasticsearch启动失败
  • Elasticsearch-ik分析器
  • 三维图像识别中OpenCV、PCL和Open3D结合的主要技术概念、部分示例
  • Java设计模式-代理模式
  • 《Angular+Spring Boot:ERP前端采购销售库存协同架构解析》
  • FalconFS: Distributed File System for Large-Scale Deep Learning Pipeline——论文阅读
  • ReVQ (Quantize-then-Rectify,量化后修正)
  • [MMU] Table walk flow详解
  • IAR编辑器如何让左侧的工具栏显示出来?
  • MCP工具开发实战:打造智能体的“超能力“