如何在MATLAB中的sprintf
函数中显示变量的值?例如,我需要显示
此变量的类型为
char
,值为'whatever'
。
到目前为止,我的代码看起来像这样:
function [desInput] = varInfo (numVec)
cLass = class(numVec);
var1 = num2str(numVec);
desInput = sprintf('This variable is of class %s and has a value of ''%d''.', cLass, var1);
end
它没有正常工作。
答案 0 :(得分:1)
sprintf
生成所需格式的字符串并将其放入变量中。如果要显示它,请使用fprintf
,或在使用disp(desInput);
时在创建的字符串上使用sprintf
。
此外,您希望显示值numVec
,但在显示之前将其转换为字符串。因此,请在显示您的号码时移除num2str
来电,或使用%s
作为修饰符。
因此,请执行以下操作:
function [desInput] = varInfo (numVec)
cLass = class(numVec);
desInput = sprintf('This variable is of class %s and has a value of ''%d''.', cLass, numVec);
disp(desInput);
end
OR
function [desInput] = varInfo (numVec)
cLass = class(numVec);
fprintf('This variable is of class %s and has a value of ''%d''.\n', cLass, numVec);
end
OR
function [desInput] = varInfo (numVec)
cLass = class(numVec);
var1 = num2str(numVec);
desInput = sprintf('This variable is of class %s and has a value of ''%s''.', cLass, var1);
disp(desInput);
end
OR
function [desInput] = varInfo (numVec)
cLass = class(numVec);
var1 = num2str(numVec);
fprintf('This variable is of class %s and has a value of ''%s''.\n', cLass, var1);
disp(desInput);
end
请注意,在fprintf
解决方案中,我插入换行符,以便在显示时将命令提示符>>
放在文本下方。
答案 1 :(得分:0)
num2str
生成一个字符串表示。您也应该使用%s
。
要看到差异:
N = 65; % random example
fprintf('%d\n', num2str(N)); % produces 5453
fprintf('%s\n', num2str(N)); % produces 65