【发布时间】:2023-03-24 16:17:01
【问题描述】:
total_Route = zeros(4,4);
tmp = evalin('base', 't'); % i initialise t in the Workspace with the value 1
if(tmp==5)
tmp=1;
end
total_Route(tmp,1) = Distance_Traveled_CM;
total_Route(tmp,2) = Hauptantrieb_Verbrauchte_Energie_CM;
total_Route(tmp,3) = Nebenaggregate_Verbrauch_Real_CM;
total_Route(tmp,4) = t;
Total_Distance_Traveled_CM = sum(total_Route(:,1));
set(handles.edit3, 'string',Total_Distance_Traveled_CM);
Total_Hauptantrieb_Verbrauchte_Energie_CM = sum(total_Route(:,2));
set(handles.edit4, 'string',Total_Hauptantrieb_Verbrauchte_Energie_CM);
Total_Nebenaggregate_Verbrauch_Real_CM = sum(total_Route(:,3));
set(handles.edit5, 'string',Total_Nebenaggregate_Verbrauch_Real_CM);
%% Index
set(handles.edit15, 'string',tmp);
assignin('base', 't', tmp + 1); % with this line i can increment "t" after each pass
guidata(hObject,handles);
对不起,我没有很好地解释我的问题。
@Sardar_Usama 我只想运行一次循环,但每次单击按钮后t 应该递增。
@Sembei Norimaki end 在我的代码末尾,忘记写在我的问题中
@Patrik & @Dennis Jaheruddin 让我再次解释一下我的问题
我创建了一个包含 4×4 元素的矩阵,目标是在矩阵元素中的每次模拟后保存每个变量(Total_Distance_Traveled_CM、Total_Hauptantrieb_Verbrauchte_Energie_CM 等)的结果(见下图) .
我想通过按下一个按钮(在我的 GUI 上)来获取每列的总和。
示例
第一遍:t = 1-->Distance_Traveled(1,1)是900,GUI会通过点击Button,第一列的总和(即900+0+0+0)写在一个静态测试。
第二遍t = 2--> Distance_traveled(2,1) 是 800,GUI 将取第一列的总和(即 900+800+0+0)并将其写入静态测试,同样的事情应该发生在另一列。
这应该一直持续到t = 4,即直到它对每一列都做了同样的事情,然后它应该重置。
我希望这次我能更好地解释我的问题,并为我的英语不好表示歉意。
感谢您的帮助。
【问题讨论】:
-
如果您只想运行循环一次,那么使用循环的目的是什么? “i”应该在每次通过后递增是什么意思?
-
for 循环在哪里结束?在 Matlab 中,您需要和
end进行循环。 -
抱歉,我不知道你想做什么。你需要给我们更多的东西。
-
@EBH 请注意,“直到”中只有一个 l。
-
@AndrasDeak 好吧,他们是so many,我无法全部抓到;)
标签: matlab for-loop vectorization