How to write if condition for a column in a .txt file
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I have a variable C that generates the last column of a .txt file. I want to only save the data as a .txt file if the C that is being generated is 1. But it is not working with if condition. However without if condition it prints the complete data perfectly.
If (C==1);
result = [A B C];
fid = fopen('XYZ.txt','wt');
fprintf(fid,'Start\n');
for ii = 1:size(result,1)
fprintf(fid,'%g\t',result(ii,:));
fprintf(fid,'\n');
end
fprintf(fid,'End\n');
fclose(fid)
end
2 Commenti
Greg
il 22 Mar 2018
Did you use a breakpoint to check the value of C, then step to see if it enters the if block? Occasionally, == fails for integers due to floating point round-off.
Risposta accettata
Greg
il 22 Mar 2018
I think I understand now - you want to downselect each row based on its value of C. We were looking at C as a scalar (clearly not the case now that I look again, you concatenate C with A and B). Do a search for one of the many questions about non-scalar if conditions - they just don't work.
If you only want to print rows of the matrix where column 3 == 1:
blnKeep = logical(C);
result = result(blnKeep,:);
%%%Your working fprintf code here, without the if condition
Then you should probably update your question to call that out more explicitly.
2 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Characters and Strings in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!