5

我有一个程序有功能和问题,返回值,它有太多的输出。

像示例:y = text 答案出现

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 文件,例如

例子:

约翰·道拉斯 15986

菲利普公爵 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);

有没有办法在不从头开始的情况下解决问题?

感谢所有的答案!

4

2 回答 2

13

您在定义中指定函数输出参数,但在函数体中没有为它分配任何内容。

例如,在

function y = student(j)                                

你的输出是y. 所以你必须分配一些东西给y.

阅读有关MATLAB 中的函数的更多信息。

于 2013-04-11T17:23:11.140 回答
2

这是一个工作示例。

第一部分是在文件名“functionA.m”中创建一个名为“functionA”的函数。然后在里面放入如下代码:

    function  result = functionA(N,alpha)
    result = 5;
    return
    end

第二部分是创建另一个 Matlab 文件(即由您命名),或者您甚至可以使用 Matlab 命令窗口。然后运行以下代码:

    getresult = functionA(100,10);
    getresult

运行后得到以下答案:

    ans = 
          5
于 2017-05-12T15:42:11.513 回答