How to use sprintf when the parameter contains an array cell

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 个评论

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.

请先登录,再进行评论。

 采纳的回答

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

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Data Type Conversion 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by