For loop problem (Help)

14 次查看(过去 30 天)
zhixuan hong
zhixuan hong 2018-2-21
评论: Guillaume 2018-2-22
Hi guys , anyone can help me to check my coding ...
Current result, something wrong ...
Desire result , How to get table like this? I'm trying to create an auto data collection software by using GUI.
  4 个评论
Guillaume
Guillaume 2018-2-21
Code as found in the m file:
subjects={'No', 'IMC(%)','Status'}
fid=fopen('Version_1','w');
fprintf(fid,'%s %s %s \r\n',subjects{:});
for k = 1:n
if x>= 75
No = num2str(n);
IMC = num2str(areaRatio);
Status = 'Pass';
dlmwrite('Version_1',[No IMC Status],'-append','delimiter','\t','precision','%.2f');
else
No = num2str(n);
IMC = num2str(areaRatio);
Status = 'Fail';
dlmwrite('Version_1',[No IMC Status],'-append','delimiter','\t','precision','%.2f');
end
end

请先登录,再进行评论。

采纳的回答

Guillaume
Guillaume 2018-2-21
编辑:Guillaume 2018-2-21
As far as I can tell the only difference between the two branches of the if is the value of Status, so a better way of writing that if ... else would have been:
if x>= 75
Status = 'Pass';
else
Staus = 'Fail';
end
No = num2str(n);
IMC = num2str(areaRatio);
dlmwrite('Version_1',[No IMC Status],'-append','delimiter','\t','precision','%.2f');
Avoid writing the same thing twice since you double the chance that you make a mistake in one of them.
Also I'm not sure why you're using dlmwrite to write text. As your example show each character ends up separated by a tab. Not very readable.
As for your problem, your loop reduces to:
for k = 1:n
dlmwrite('Version_1', Variables_That_Do_Not_Depend_ON_k, ...)
end
Nothing depends on the iteration variable k in your loop, so, yes you're going to be writing n times the same things. I suspect that No should be
No = num2str(k);
As for x and areaRatio, since they're both scalar I have no idea how they're supposed to change in the loop. Note that x and areaRatio are the same since earlier you have x = areaRatio. Why have two names for the thing? It just adds confusion.
  4 个评论
zhixuan hong
zhixuan hong 2018-2-22
yup , the IMC also a variable . After pressing the push button, areaRatio/x (IMC) will be calculated by using formula under push button function.
Guillaume
Guillaume 2018-2-22
How to vary areaRatio/x/IMC
I don't know! You tell us. Only you knows what you intended to do with that loop but didn't do.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by