【问题标题】:For loops exercise in matlabmatlab中的for循环练习
【发布时间】:2017-08-18 10:49:53
【问题描述】:

我是 MATLAB 的初学者,我被要求做一个练习来学习 for 循环。我有 5 个数字,从 1 到 5 ( 1 , 2 ,3 ,4 ,5) 并且每个数字都将展示一个由四个阶段组成的转换过程,例如对于 5 ( 5 将 --> 5( 在第一阶段结束)4(第二阶段结束时3(第三阶段)2(第二阶段)1(第一阶段)),对于4(4,4,3,2),对于3(3,3, 3 ,2) ,对于 2 ( 2 ,2 ,2 ,1 ) 和对于 1 ( 1 1 1 1) 。我需要在每次迭代时输出(对于每个数字)结果(例如对于 5 --> 5 (迭代 1) , 4 (iteration 2 ) 等等),那么任何人都可以在这个练习中帮助我吗?这让我作为一个初学者感到困惑。谢谢

【问题讨论】:

  • 你能发布你迄今为止尝试过的东西,即使它不能完美运行吗?我们可以为您提供解决方案,但如果您自己先尝试,您会学到更多。要自己查找错误,使用matlab debugger 逐步运行代码可能会有所帮助。
  • 看起来像是作业(我没有投反对票,顺便说一句)。在这里,许多人不会承认家庭作业是一个合理的问题。我建议您付出一些努力,将其从纯粹的家庭作业带到某种程度的格式良好的问题,这样可以吸引开发人员回答您的特定问题。这样,你会学得更好更快。
  • 谢谢大家的回复。不,它不是硬件,我只是为了练习目的而尝试做这个想法。这是我所达到的:
  • for n= 1:5 for q = 1:4 end end
  • 问题是我找不到算法本身在嵌套循环中使用来产生结果。

标签: matlab for-loop


【解决方案1】:

在 mathworks 上查看 for loop

不是特别清楚你在问什么,我建议编辑你的问题,以明确你想要做什么以及你在这样做时遇到了什么问题。

看来您应该只使用一个 for 循环。您可以从每个循环的每个元素中减去 1,但要设置一个限制,这样元素就不会变为零。为了解决这个问题,您可以使用find function 来获取每个元素的索引,然后在 for 循环中包含一个限制,如果元素变为

要每次输出迭代次数,只需将要迭代的变量放入循环中即可。

for n=5:-1:1 %decrements from 5 to 1 A-1; %A is the vector you started with n %by not suppressing the output with a semicolon will show the value of n in the command window. You could also use disp(n) indZeroEl = find(A==0); %the index of any element equal to zero A(indZeroEL) = 1; end

我现在无法访问 matlab 来检查这一点,但这至少应该能让你走上正确的道路。

【讨论】:

    猜你喜欢
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多