I am struggling to use sprint
7 views (last 30 days)
Show older comments
Hi,
I have a problem regarding the use of sprintf.
Inside a user-defined function (which I can edit), the output is "A" and it is defined as:
A=sprintf('The fruits are %s and they are tasty.\n',f); waitfor(msgbox(A));
where f is defined as a string vector with 1 row. The number of columns varies between 1 to 100. For each element, there is a comma at the end of the string.
f is the input of the UDF, and I have no control of the length of it. f comes from another file that I have no control of. f always follows the same pattern, as shown as bolow.
Here are some examples:
1. f=["apple," "pear," "banana,"];
The ideal output is: The fruits are apple,pear,banana, and they are tasty.
2. f=["apple," "pear," "banana," "orange"];
The ideal output is: The fruits are apple,pear,banana,orange, and they are tasty.
3. f=["apple,"];
The ideal output is: The fruits are apple, and they are tasty.
** There is no space between the comma and the next string.
However, the the program gave me :
The fruits are apple, and they are tasty.
The fruits are pear, and they are tasty.
The fruits are banana, and they are tasty.
for the first case
The fruits are apple, and they are tasty.
The fruits are pear, and they are tasty.
The fruits are banana, and they are tasty.
The fruits are orange, and they are tasty.
for the second case
The third case seems working.
Please help.
0 Comments
Accepted Answer
Adam Danz
on 29 Apr 2019
strjoin()
f=["apple," "pear," "banana," "orange"];
A=sprintf('The fruits are %s and they are tasty.\n',strjoin(f));
4 Comments
Adam Danz
on 29 Apr 2019
Yep, check out the second input to strjoin();
help strjoin
Here's your text without spaces
A=sprintf('The fruits are %s and they are tasty.\n',strjoin(f,''));
More Answers (0)
See Also
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!