Matlab函数返回值
问题描述:
我有一个程序有函数和问题,返回值,它有太多的输出。Matlab函数返回值
像exempley:Y =文本答案来了
Error in text (line 2)
if nargin == 0
Output argument "array" (and maybe others) not assigned during call to "
C:\Users\name\Documents\MATLAB\text.m>text".
程序text.m读取包含像
为例几个名字和号码的txt文件:
约翰doughlas 15986
Filip duch 357852
等等。该程序将它们转换为15986 Doughlas John等。
function array = text(~)
if nargin == 0
dirr = '.';
end
answer = dir(dirr);
k=1;
while k <= length(answer)
if answer(k).isdir
answer(k)=[];
else
filename{k}=answer(k).name;
k=k+1;
end
end
chose=menu('choose file',filename);
namn = char(filename(chose));
fid = fopen(namn, 'r');
R = textscan(fid,'%s %s %s');
x=-1;
k=0;
while x <= 24
x = k + 1;
All = [R{3}{x},' ',R{1}{x},' ',R{2}{x}];
disp(All)
k = k + 1;
end
fclose(fid);
反正有没有从头开始解决问题?
感谢所有的答案!
答
您可以在定义中指定函数输出参数,但是您不必在函数体中为其分配任何内容。
例如,在
function y = student(j)
你的输出y
。所以你必须指定y
。
在MATLAB中阅读关于functions的更多内容。
答
这是一个工作示例。
第一部分是在文件名'functionA.m'中创建一个名为'functionA'的函数。然后把下面的代码里面:
function result = functionA(N,alpha)
result = 5;
return
end
第二部分是创建另一个Matlab的文件(即高达你的名字。),或者甚至可以使用MATLAB命令窗口。然后运行下面的代码:
getresult = functionA(100,10);
getresult
运行你会得到如下答案后:
ans =
5
谢谢你,我想出把它放在哪里,但无法弄清楚的text.m,它有很多输出。 – CSPTT 2013-04-12 12:36:50
您可以使用'[x,y,z] =函数名(...)'返回一个函数的多个输出。或者您可以将所有输出组合到单元阵列或结构中。阅读文档,这是清楚的解释。并且不要调用函数'text',因为这个名字有一个内建的MATLAB函数。 – yuk 2013-04-12 14:43:18
对不起,但我不能找到我要找的结果,也许我只是为了接近看到它或我是盲目的。但我阅读了文档,并得到了一些结果,但没有找到我想要的结果。 像为例: Y = 25 Y =号码name1,2,3,4,5等 Y = 号码NAME1 Y = 号码NAME2等。 – CSPTT 2013-04-14 14:10:47