why would Matlab skip the loop??
7 次查看(过去 30 天)
显示 更早的评论
Hello,
I have a question that I can seem to wrap my head around,
I have created a gui that uses the unput from the user to run a script within the gui and later display the results to the user interface. What I dont understand is that everything is running ok until I choose one particular file. The interesting and mind boggling is that the script jumps a nested loop (whie this dosent happen for the other choices). I dont understand why this happens and cant find anything relavent on the internet. The script stand alone executes perfectly.
for i=2:length(Data_last_values)
for j=2:length(temp_nov)
if Data_last_values(i,4)>temp_nov(j,1) & Data_last_values(i,4)<temp_nov(j-1,1)
Data_last_values(i,9)=Data_last_values(i,3)+Q_leak_dot(j);
disp('gone through loop')
end
end
end
displayed above is the part of the nested loop that matlab chooses to skip. would any one know why this happens? below I present the gui script:
if not(isempty(cell2mat(z)))
run Daughter
assignin('base','avg',data(:,8))
axes(handles.axes1);
markerSize = 50;
scatter(Data_last_values(:,4),Data_last_values(:,9),markerSize,Data_last_values(:,5)) % -> volumetric mass flow is used in the color bar
colormap(jet(20));
h=colorbar;
xlabel('T_{water}[C]')
ylabel('Q_{out} [W]')
ylabel(h, 'Volumetric Flow [Lt/min]')
grid minor
myvar = evalin('base', 'avg');
y=line([0 max(Data_last_values(:,4))], [mean(myvar) mean(myvar)]);
xlim([0 max(Data_last_values(:,4))])
0 个评论
回答(1 个)
Image Analyst
2015-9-1
What is the value of temp_nov and length(temp_nov)? temp_nov seems to be a 2D array. Did you know that length gives the size of the longest dimension when passed a 2D array. What exactly were you hoping to get: the rows or columns?
Are you using the debugger? I don't mean the "debug by Answers forum" debugger, but the actual debugger where you can step through your program and see the values of variables and see what lines of code get executed? That is what everybody uses and will undoubtedly be your fastest way to a solution. http://blogs.mathworks.com/videos/2012/07/03/debugging-in-matlab/
Also, the double for loop you say it skips is not even in the "gui script" code so I don't doubt that it doesn't get executed - it's not even there!
1 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!