MATLAB Answers

0

why am I getting 'ugly' output?

Asked by Muazma Ali on 5 Sep 2019
Latest activity Commented on by Rik
on 5 Sep 2019
combinations_available=input(['Enter the number associated with the combination of salts available. Enter 0 if none of the combinations are available.'...
'\n1:Two of these chlorides 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl(sodium chloride) 5) KCl(potassium chloride) '...
'\n2:ZnBr2(zinc bromide) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride 4) NaCl(sodium chloride) 5) KCl(potassium chloride)'...
'\n3:NH4Cl(ammonium chloride) & 1) CH3CO2K(potassium acetat) 2) ZnSO4(zink sulphate) 3) HCOONa(Sodium formate) 4) HCOOK(potassium formate)'...
'\n4:ZnBr2(zinc bromide) & 1) CH3CO2K(potassium acetate) 2) ZnSO4(zink sulphate) 3) HCOONa(sodium formate) 4) HCOOK(potassium formate)'...
'\n5:CH3CO2K(potassium acetate) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl(sodium chloride) 5) KCl(potassium chloride)'...
'\n6:CH3CO2K(potassium acetate) & 1) ZnSO4(zinc sulphate) 2) HCOONa(sodium formate) 3) HCOOK(potassium formate)'...
'\n7:ZnSO4(zinc sulphate) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl(sodium chloride) 5) KCl(potassium chloride)'...
'\n8:ZnSO4(zinc sulphate) & 1) HCOONa(sodium formate) 2) HCOOK(potassium formate)'...
'\n9:HCOONa(sodium formate) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl(sodium chloride) 5) KCl,(potassium chloride)'...
'\n10:HCOOK(potassium formate) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl 5) KCl'...
'\n11:HCOONa & 1) HCOOK. ']);
Above is how it looks where I code but the output is something like this: The numbers dont come right below one another..:
Enter the number associated with the combination of salts available. Enter 0 if none of the combinations are available.
1:Two of these chlorides 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl(sodium chloride) 5) KCl(potassium chloride)
2:ZnBr2(zinc bromide) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride 4) NaCl(sodium chloride) 5) KCl(potassium chloride)

  0 Comments

Sign in to comment.

1 Answer

Rik
Answer by Rik
on 5 Sep 2019
 Accepted Answer

At this point you should consider creating a small GUI for your input selection. But for your question at hand: you forgot to allign the start of the rows, so you missed the fact that they were actually shifted. The smart allign button in the editor and a few spaces gets you this:
combinations_available=input(['Enter the number associated with the combination of salts available. Enter 0 if none of the combinations are available.'...
'\n1:Two of these chlorides 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl(sodium chloride) 5) KCl(potassium chloride) '...
'\n2:ZnBr2(zinc bromide) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride 4) NaCl(sodium chloride) 5) KCl(potassium chloride)'...
'\n3:NH4Cl(ammonium chloride) & 1) CH3CO2K(potassium acetat) 2) ZnSO4(zink sulphate) 3) HCOONa(Sodium formate) 4) HCOOK(potassium formate)'...
'\n4:ZnBr2(zinc bromide) & 1) CH3CO2K(potassium acetate) 2) ZnSO4(zink sulphate) 3) HCOONa(sodium formate) 4) HCOOK(potassium formate)'...
'\n5:CH3CO2K(potassium acetate) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl(sodium chloride) 5) KCl(potassium chloride)'...
'\n6:CH3CO2K(potassium acetate) & 1) ZnSO4(zinc sulphate) 2) HCOONa(sodium formate) 3) HCOOK(potassium formate)'...
'\n7:ZnSO4(zinc sulphate) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl(sodium chloride) 5) KCl(potassium chloride)'...
'\n8:ZnSO4(zinc sulphate) & 1) HCOONa(sodium formate) 2) HCOOK(potassium formate)'...
'\n9:HCOONa(sodium formate) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl(sodium chloride) 5) KCl,(potassium chloride)'...
'\n10:HCOOK(potassium formate) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl 5) KCl'...
'\n11:HCOONa & 1) HCOOK. ']);
With the result in the command prompt:
Enter the number associated with the combination of salts available. Enter 0 if none of the combinations are available.
1:Two of these chlorides 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl(sodium chloride) 5) KCl(potassium chloride)
2:ZnBr2(zinc bromide) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride 4) NaCl(sodium chloride) 5) KCl(potassium chloride)
3:NH4Cl(ammonium chloride) & 1) CH3CO2K(potassium acetat) 2) ZnSO4(zink sulphate) 3) HCOONa(Sodium formate) 4) HCOOK(potassium formate)
4:ZnBr2(zinc bromide) & 1) CH3CO2K(potassium acetate) 2) ZnSO4(zink sulphate) 3) HCOONa(sodium formate) 4) HCOOK(potassium formate)
5:CH3CO2K(potassium acetate) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl(sodium chloride) 5) KCl(potassium chloride)
6:CH3CO2K(potassium acetate) & 1) ZnSO4(zinc sulphate) 2) HCOONa(sodium formate) 3) HCOOK(potassium formate)
7:ZnSO4(zinc sulphate) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl(sodium chloride) 5) KCl(potassium chloride)
8:ZnSO4(zinc sulphate) & 1) HCOONa(sodium formate) 2) HCOOK(potassium formate)
9:HCOONa(sodium formate) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl(sodium chloride) 5) KCl,(potassium chloride)
10:HCOOK(potassium formate) & 1) NH4Cl(ammonium chloride) 2) MgCl2(magnesium chloride) 3) CaCl2(calcium chloride) 4) NaCl 5) KCl
11:HCOONa & 1) HCOOK.

  6 Comments

I must say I didnt understand the answers here. My point was a little unclear maybe ..my code is running n actually the output doesnt look like the one shown here . In the second version of my question I had shown how it looks like in the attached png file, will do it again. Since I have writen all the if blocks I dont want to change the code because the rest is dependent on this one. (Wil come back with the right output soon)
Steven Lord
on 5 Sep 2019
Just because you have the two literal characters \ and n in that order in a char vector or string array, MATLAB won't automatically treat those as a newline. You could tell MATLAB to include the newline character by using the newline function (introduced in R2016b) or using sprintf (introduced a long time ago) or compose (also introduced in R2016b).
Rik
on 5 Sep 2019
The problem was here:
combinations_available=input(['Enter the number associated with the combination of salts available. Enter 0 if none of the combinations are available.'...
'\n1:Two of these chl
% |^^
'\n2:ZnBr2(zinc bromid
% |^
'\n3:NH4
% |
You don't have to change you code, just remove the three spaces indicated with ^ above. Then you will see why you're allignment was incorrect. I corrected it in the code block in my answer.

Sign in to comment.