如何在matlab中控制返回变量

dat*_*ili 2 matlab function

我想澄清如何在matlab中控制从函数返回变量,例如,让我们考虑一下这段代码

function [x y z]=percentage(a)
 n=length(a);
  maximum=0;
  minimum=0;
   subst=0;
 minus=0;
 plus=0;
 minus_perc=0;
 plus_perc=0;
  for i=1:1:n
      if a(i)>0
          plus=plus+1;
      else
          minus=minus+1;
      end
end
      minuc_perc=minus/n;
      plus_perc=plus/n;
                 maximum=max(minus_perc,plus_perc);
                  minimum=min(minus_perc,plus_perc);
                  subst=maximum-minimum;
                  x=plus_perc;
                  y=minus_perc;
                  z=subst*100;
                  if plus_perc>minus_perc 
                      disp('among the successful people,relevant propession was choosen by');
                      disp(z)
                      disp('% people');
                  else
                         disp('among the successful people,irrelevant propession was choosen by');
                         disp(z);
                         disp('% people');
                  end

     end
Run Code Online (Sandbox Code Playgroud)

我想回到的是plus_proc,min_procsubst,但是当我运行下面的命令,结果得到这样的

[c d e]=percentage(a)
among the successful people,relevant propession was choosen by
   58.3333

% people

c =

    0.5833


d =

     0


e =

   58.3333
Run Code Online (Sandbox Code Playgroud)

所以我觉得有些不对劲,阵列是这样的

a =

     1    -1     1     1    -1     1    -1    -1     1     1     1    -1
Run Code Online (Sandbox Code Playgroud)

这样的人再一次,我想回到plus_proc,minus_procsubst

Ala*_*lan 5

要在matlab中返回变量,只需指定一个指定的返回参数即可.例如:要返回我将使用的五号:

function [foo] = gimmeFive()
    foo = 5;
end
Run Code Online (Sandbox Code Playgroud)

你的代码没有给你正确的答案,因为你有一个错字:

minuc_perc=minus/n;
Run Code Online (Sandbox Code Playgroud)

应该

minus_perc=minus/n;
Run Code Online (Sandbox Code Playgroud)

您可以通过利用函数来大大简化find函数,如下所示:找到> 0的任何元素的indeces,计算它们.

plus = length(find(a > 0)); 
plus_perc = plus ./ length(a);
Run Code Online (Sandbox Code Playgroud)

或者如果你想削减更多:a> 0给我们一个0和1的向量,所以总结1

plus = sum(a > 0);
plus_perc = plus ./ length(a);
Run Code Online (Sandbox Code Playgroud)