MATLAB Answers


How and when to use sprintf disp ?....

Asked by Luca
on 15 Aug 2017
Latest activity Edited by Luca
on 16 Aug 2017
Hi guys, I m italian (excuse me for my english) and I have a question about sprintf (disp,..):
My code is :
for k=1:1:Matrice_Gruppi(1, end)
c2={Matrice_Gruppi(5, k)};
sprintf('\n %s paga %s euro.',c1{1},c2{1});
I simply would
  1. Insert with keybord a string and to save it into nomi_famiglie then
  2. To print values of nomi_famiglie and Matrice_Gruppi on command window (inizially, then I would create a interface).
I see the error:
Undefined function or variable 'sprinf'.
Could you help me please?
Thanks and bye


Show 1 older comment
on 16 Aug 2017
>> Matrice_Gruppi
Matrice_Gruppi =
@Luca Filippone: I think you should be using
for k = 1:numel(Matrice_Gruppi)
on 16 Aug 2017
All works, thanks

Sign in to comment.

1 Answer

Answer by Image Analyst
on 15 Aug 2017
Edited by Image Analyst
on 15 Aug 2017
 Accepted Answer

There is no function sprinf(). Use sprintf(), with a "t", instead.
Or better yet, don't use cell arrays:
for k=1:1:Matrice_Gruppi(1, end)
myStrings{k} = sprintf('%s paga, %f euros.\n',...
nomi_famiglie, Matrice_Gruppi(5, k));
assuming Matrice_Gruppi is an array of doubles, not strings like you implied by using %s.


Luca Filippone's "Answer" moved here:
..and then.. why with new=input('\n\nInserisci nome famiglia '); I can't type a string?
new=input('\n\nInserisci nome famiglia ')
Inserisci nome famiglia pippo Error using input Undefined function or variable 'pippo'.
@Luca Filippone: because you forgot to read the input documentation, and learn that you need to use the 's' option for strings:
txt = 'Inserisci nome famiglia: ';
str = input(txt,'s')
You showed in your comment above that Matrice_Gruppi is a 5 by 1 array. And Matrice_Gruppi(1,end) = 520.2000. So in your sprintf when you're trying to access Matrice_Gruppi(5, k) when k = 1,2,3,4,5,.....520, will fail because there is no columns beyond 1.

Sign in to comment.