在 MATLAB 中使用成对 conditions/variables 进行循环
For loop with pair-wise conditions/variables in MATLAB
我有一个关于将 for 循环与成对变量一起使用的问题。
现在我正在使用一个循环:
For i=1:1:10
Code
End
代码执行 Simulink 模型。我需要在这个模型中引入两个变量。一个是 Torque (A1–A10),另一个是 TriggerTime (B1-B10)。但我需要成对使用它们。因此,例如,我想使用 A1、B1、i(1) 条件执行模型,下一次迭代使用 A2、B2、i(2) 等等。我在想类似的事情:
TriggerTime= [B1 B2. ..B10]
Torque=[ A1 A2… A10]
YY = 1;
For i= 1:1:10
TriggerTime[1,YY];
Break torque[1,YY];
Y= Y +1;
Code
End
并且纯粹在 MATLAB 中,我认为这段代码可以工作(或不工作?)。但是当涉及到我的 Simulink 模型时,它变得有点复杂:
Error_message:
和
Simulink_model_part:
我试图找出解决这些问题的方法,但没成功。我可以看到它应该很简单,但不明白如何调整代码。
很难回答关于 Simulink 的问题,因为提供的关于模型的信息太少了,但是您对简单的 for 循环有一些问题,这让我觉得也许这就是问题所在。
这是你的例子:
TriggerTime= [B1 B2. ..B10]
Torque=[ A1 A2… A10]
YY = 1;
For i= 1:1:10
TriggerTime[1,YY];
Break torque[1,YY];
Y= Y +1;
Code
End
这些是一些问题:
- 您没有在 for 循环中使用 for 变量
i
。
- 然而,您正在手动递增一个变量,
Y
,但它也没有被使用。
- for 循环变量
i
的初始化包含一个多余的 1,应该简单地读作 i=1:10
。
- 您没有在 for 循环内缩进代码,这会降低可读性并增加出错风险。
- 您试图使用方括号 [] 来访问数组元素,而您应该使用普通括号 ()。
- 您在 for 循环中使用了关键字
[break][1]
,它终止了 for 循环。
- 条件变量
TriggerTime
和 Torque
的初始化会产生两个一维数组,但您期望在 for 循环内有两个二维数组,因为您给出了两个索引, [1,YY]
.
试试这个 for 循环,看看效果是否更好:
TriggerTime = [B1 B2 ... B10];
Torque = [A1 A2 ... A10];
for i = 1:10
currentTriggerTime = TriggerTime(i);
currentTorque = Torque(i);
Code
end
我有一个关于将 for 循环与成对变量一起使用的问题。
现在我正在使用一个循环:
For i=1:1:10
Code
End
代码执行 Simulink 模型。我需要在这个模型中引入两个变量。一个是 Torque (A1–A10),另一个是 TriggerTime (B1-B10)。但我需要成对使用它们。因此,例如,我想使用 A1、B1、i(1) 条件执行模型,下一次迭代使用 A2、B2、i(2) 等等。我在想类似的事情:
TriggerTime= [B1 B2. ..B10]
Torque=[ A1 A2… A10]
YY = 1;
For i= 1:1:10
TriggerTime[1,YY];
Break torque[1,YY];
Y= Y +1;
Code
End
并且纯粹在 MATLAB 中,我认为这段代码可以工作(或不工作?)。但是当涉及到我的 Simulink 模型时,它变得有点复杂:
Error_message:
和
Simulink_model_part:
我试图找出解决这些问题的方法,但没成功。我可以看到它应该很简单,但不明白如何调整代码。
很难回答关于 Simulink 的问题,因为提供的关于模型的信息太少了,但是您对简单的 for 循环有一些问题,这让我觉得也许这就是问题所在。
这是你的例子:
TriggerTime= [B1 B2. ..B10]
Torque=[ A1 A2… A10]
YY = 1;
For i= 1:1:10
TriggerTime[1,YY];
Break torque[1,YY];
Y= Y +1;
Code
End
这些是一些问题:
- 您没有在 for 循环中使用 for 变量
i
。 - 然而,您正在手动递增一个变量,
Y
,但它也没有被使用。 - for 循环变量
i
的初始化包含一个多余的 1,应该简单地读作i=1:10
。 - 您没有在 for 循环内缩进代码,这会降低可读性并增加出错风险。
- 您试图使用方括号 [] 来访问数组元素,而您应该使用普通括号 ()。
- 您在 for 循环中使用了关键字
[break][1]
,它终止了 for 循环。 - 条件变量
TriggerTime
和Torque
的初始化会产生两个一维数组,但您期望在 for 循环内有两个二维数组,因为您给出了两个索引,[1,YY]
.
试试这个 for 循环,看看效果是否更好:
TriggerTime = [B1 B2 ... B10];
Torque = [A1 A2 ... A10];
for i = 1:10
currentTriggerTime = TriggerTime(i);
currentTorque = Torque(i);
Code
end