【问题标题】:Matlab function return valueMatlab函数返回值
【发布时间】:2021-09-10 21:42:36
【问题描述】:

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

例如示例: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 文件,其中包含几个名称和数字,例如

示例:

约翰·道拉斯 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);

有没有办法不从头开始解决问题?

感谢所有答案!

【问题讨论】:

    标签: matlab return-value


    【解决方案1】:

    你在定义中指定了函数输出参数,但你没有在函数体中为它分配任何东西。

    例如,在

    function y = student(j)                                
    

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

    详细了解 MATLAB 中的 functions

    【讨论】:

    • 谢谢你,我知道把它放在哪里,但不知道text.m,它有很多输出。
    • 您可以使用 [x,y,z] = functionname(...) 从函数返回多个输出。或者,您可以将所有输出组合成一个元胞数组或结构。阅读文档,解释得很清楚。并且不要调用函数text,因为有一个使用此名称的内置 MATLAB 函数。
    • 对不起,我找不到我正在寻找的结果,也许我只是为了接近才能看到它,或者我是盲人。但是我阅读了文档,得到了一些结果,但不是我想要的。比如:y=25 y= numbers name1,2,3,4,5 等等 y= numbers name1 y = numbers name2 等等。
    • 对不起,我不明白你需要什么。请详细说明您期望的结果。更好地提出一个新问题,因为您已经接受了这个问题。您可以通过链接参考此问题。
    【解决方案2】:

    这是一个工作示例。

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

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

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

        getresult = functionA(100,10);
        getresult
    

    运行后得到如下答案:

        ans = 
              5
    

    【讨论】:

      猜你喜欢
      • 2011-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-27
      • 1970-01-01
      • 2013-04-26
      相关资源
      最近更新 更多