【问题标题】:Matlab: Efficient way to sum tall array column values with upper limitMatlab:将高数组列值与上限相加的有效方法
【发布时间】:2021-12-29 08:23:09
【问题描述】:

我想使用以下计算创建一个新的高列。

电池容量(n) = 电池容量(n-1) - 消耗电量+充电电量。

电池容量和消耗功率都是高阵列列。充电功率是一个常数值。

附带说明的是,电池容量不能超过最大电池容量。(在本例中为 104kWh) 有人可以帮我看看如何设置吗?

提前致谢。

【问题讨论】:

标签: arrays matlab


【解决方案1】:

应该是这样的:

numNewMeasures = 1000;
numCurrMeasures = size(batterycapacity, 1); % Number of elements in the column array

batterycapacity(numCurrMeasures + numNewMeasures) = 0; % Extending the array
for idx = (numCurrMeasures + 1):(numCurrMeasures + numNewMeasures)
    batterycapacity(idx) = batterycapacity(idx - 1) - consumedPower + chargingPower;
    batterycapacity(idx) = min(batterycapacity(idx), 104e3); % Make sure value is below 104kWh
end

【讨论】:

  • 感谢您的回复。有一件重要的事情我忘了提。变量“consumedPower”和“充电功率”也是高列的值。当我修改代码以使其工作时,运行 for 循环(4.6s / 循环)需要很长时间。有办法解决这个问题吗?提前致谢。
猜你喜欢
  • 2018-04-07
  • 2011-09-05
  • 2014-06-10
  • 1970-01-01
  • 2012-01-18
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多