gpt4 book ai didi

matlab - 如何在matlab中控制返回变量

转载 作者:行者123 更新时间:2023-12-02 05:05:35 26 4
gpt4 key购买 nike

我想阐明如何在 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

我想返回的是plus_procmin_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

所以我觉得哪里不对,数组是这样的

a =

1 -1 1 1 -1 1 -1 -1 1 1 1 -1

再说一遍,我想返回 plus_procminus_procsubst

最佳答案

要在 matlab 中返回一个变量,您只需将其分配给指定的返回参数之一。例如:要返回我将使用的数字 5:

function [foo] = gimmeFive()
foo = 5;
end

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

minuc_perc=minus/n;

应该是

minus_perc=minus/n;

您可以利用 find 函数极大地简化函数,如下所示:求 a > 0 的任意元素的索引,数一数。

plus = length(find(a > 0)); 
plus_perc = plus ./ length(a);

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

plus = sum(a > 0);
plus_perc = plus ./ length(a);

关于matlab - 如何在matlab中控制返回变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16319479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com