I am struggling to use sprint
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Adam Danz
2019-4-29
strjoin()
f=["apple," "pear," "banana," "orange"];
A=sprintf('The fruits are %s and they are tasty.\n',strjoin(f));
4 个评论
Adam Danz
2019-4-29
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,''));
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!