在下面的代码中,我可以打印以空格分隔的向量item
中的所有元素
item = [123 456 789];
sprintf('%d %d %d', item)
ans =
123 456 789
如何在%d
中输入与item
元素数量一样多的{{1}}来完成此操作?
答案 0 :(得分:19)
最简单的答案是注意SPRINTF将自动循环显示您提供的向量的所有元素,因此您只需使用一个 %d
,但请遵循它或以空格引导它。然后,您可以使用函数STRTRIM删除末端的额外空白区域。例如:
>> item = [123 456 789];
>> strtrim(sprintf('%d ',item))
ans =
123 456 789
答案 1 :(得分:4)
我相信num2str
正是您所寻找的。 p>
item=[123 456 789];
num2str(item)
ans =
123 456 789
由于您还标记了sprintf
,因此这是一个使用它的解决方案。
item=[123 456 789];
str='%d ';
nItem=numel(item);
strAll=repmat(str,1,nItem);
sprintf(strAll(1:end-1),item)
ans =
123 456 789
答案 2 :(得分:0)
根据以上答案创建函数,并将其保存在名为函数名称的文件中。
保存在名为 print_vector.m 的文件中,该文件位于 / home / $ {project_file_path} / functions
文件夹中function vector_as_string = print_vector(v)
str='%d ';
nItem=numel(v);
strAll=repmat(str,1,nItem);
vector_as_string = sprintf(strAll(1:end-1),v)
导入程序并使用
addpath('/home/${project_file_path}/functions')
vector = [10 ; 20; 30;];
disp(sprintf('printing a vector using function %s \n', print_vector(vector));
输出为:
printing a vector using function 10 20 30