我有一个简短的函数,用于textscan
将数据读入变量。
我的问题是我总是得到这个:
>>function('function.txt')
ans =
{10x1 cell} {10x1 cell} {10x1 cell} [10x1 double]
除了在我用来调用函数的行尾添加一个分号之外,还有什么方法可以抑制这种情况?我希望能够在不添加分号的情况下抑制它。运行此功能时,我根本不想显示任何内容,我只想加载我的文件。
我有一个简短的函数,用于textscan
将数据读入变量。
我的问题是我总是得到这个:
>>function('function.txt')
ans =
{10x1 cell} {10x1 cell} {10x1 cell} [10x1 double]
除了在我用来调用函数的行尾添加一个分号之外,还有什么方法可以抑制这种情况?我希望能够在不添加分号的情况下抑制它。运行此功能时,我根本不想显示任何内容,我只想加载我的文件。
您可以通过删除函数的输出参数(或返回值)来抑制输出。或尝试使用Variable Number of Outputs
,请参阅支持可变数量的输出
function varargout = foo
nOutputs = nargout;
varargout = cell(1,nOutputs);
for k = 1:nOutputs;
varargout{k} = k;
end
end
你打字>>foo
却一无所获。您输入>>a=foo
并获取>>a=1
. 您输入>>[a,b]=foo
并获取>>a=1 >>b=2
.
因此,您可以通过不提供任何输出参数来抑制输出。
避免打印输出的最简单方法是,如果没有请求输出参数,则不分配第一个输出参数:
function [aOut,b,c] = doSomething
%# create a,b,c normally
a = 1;
b = 4;
c = 3;
%# only assign aOut if any output is requested
if nargout > 0
aOut = a;
end
您可以尝试使用该diary
功能。它将命令提示符的所有输入和输出重定向到您选择的文件。如果仅在特定功能期间打开它,则不应捕获任何输入。我承认这是一个有点笨拙的解决方案,因为日记开/关状态对 matlab 来说是全局的,但在你的情况下可能没问题。
在此处阅读更多相关信息: 日记 matlab 帮助