MATLAB Answers

0

How to use sprintf when the parameter contains an array cell

Asked by Elahe Karimi on 25 Apr 2019
Latest activity Commented on by Elahe Karimi on 25 Apr 2019
Hi,
How to use sprintf when the Address parameter contains an array cell?
Address={'./DataBase/1/(%d).png','./DataBase/2/ (%d).png' , './DataBase/3/(%d).png','...........','./DataBase/10/(%d).png'}
for j=1:10
Address=Address(j);
end
S{i}=sprintf(Address,i);
.
.
.
When I use this code, I get the following error :
Error using sprintf
Invalid format.Error in LoadData (line 29)
S{i}=sprintf(Address,i);
thank you

  3 Comments

You are replacing the cell Address with () indexed elements of itself which would fail because after the first time it would be a scalar cell.
You try to pass a scalar cell as the format instead of using {} indexing to get the content.
Writing out all of those format strings in the cell array is a waste of time anyway: it is better to generate them in the loop, exactly as madhan ravi showed.
Thanks for the suggestions. I did it and the code does not make a mistake. Thank you so much for answering my question.

Sign in to comment.

1 Answer

Answer by madhan ravi
on 25 Apr 2019
 Accepted Answer

n=10;
S=cell(n,1);
for k = 1:n
S{k}=sprintf('./DataBase/%d/(%d).png',[k;k]);
... some operation
end

  1 Comment

Thank you so much for answering my question.

Sign in to comment.