print()出错:“输出参数”varargout“(可能还有其他)未分配”

时间:2012-05-17 11:15:57

标签: matlab printing

我一直在尝试在MATLAB中编写一个简单的脚本来绘制图像,询问用户是否要将其打印到文件中,并且(如果是)执行此操作。但是,我遇到了print()函数的奇怪错误。这是我的代码:

plot(X, Y, 'red');

choice = input('Do you want to print to file this 2D image ? [y/n] ', 'y');

if(choice=='Y' || choice=='y')
{
    print(hFig, '-dpng', strcat(filename, '.png'));
}

如果正在运行,它将在if语句内停止并显示错误:

  

==>中的错误打印在161 err.message ='';

     

???输出参数“varargout”(可能还有其他)在期间未分配   请致电“C:\ Programmi \ MATLAB \ R2010a \ toolbox \ matlab \ graphics \ print.m> print”。

     

==>中的错误istogramma at 30 print(hFig,' - dpng',strcat(filename,'。png'));

为什么我会收到此错误,如何避免此错误?

2 个答案:

答案 0 :(得分:4)

if代码与{}似乎很奇怪,在MATLAB中{}用于单元格数组和单元格数组索引,而不是代码结构。此外,input的第二个参数必须是's',而不是'y'

固定代码:

choice = input('Do you want to print to file this 2D image ? [y/n] ', 's');

if(choice=='Y' || choice=='y')
    print(hFig, '-dpng', strcat(filename, '.png'));
end

编辑继续询问,直到用户回答'y','Y','n'或'N':

choice = '';
while ~ismember(choice, {'y', 'Y', 'n', 'N'})
    choice = input('Do you want to print to file this 2D image ? [y/n] ', 's');
end

if(choice=='Y' || choice=='y')
    print(hFig, '-dpng', strcat(filename, '.png'));
end

答案 1 :(得分:0)

太混乱了!因为print命令没有任何输出参数!!!

我不清楚,但我认为首先检查hFig任务。你可以用

hFig=figure;
plot(X, Y, 'red');
% ...

如果你想创建一个图形并在其中绘制任何你想要的东西。 因为错误说你的输出参数没有分配所以检查“文件名”或你可以使用

[filename '.png'] 

代替。

我希望这对你有所帮助。现在我没有MATLAB,我不能为你测试它。

P.S。 :见:Why do I get the error '??? Output argument ‹variable› (and maybe others) not assigned during call to ‹function›.' ?