why am I getting 'ugly' output?

1 view (last 30 days)
Muazma Ali
Muazma Ali on 5 Sep 2019
Commented: 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)

Accepted Answer

Rik
Rik on 5 Sep 2019
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
Steven Lord
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
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.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!