2014-11-23 52 views
3

在MATLAB中,下面的代码返回ms函数如何在Julia(与MATLAB)中有多个返回值?

function [m,s] = stat(x) 
n = length(x); 
m = sum(x)/n; 
s = sqrt(sum((x-m).^2/n)); 
end 

如果我运行命令

values = [12.7, 45.4, 98.9, 26.6, 53.1]; 
[ave,stdev] = stat(values) 

我得到如下结果:

ave = 47.3400 
stdev = 29.4124 

我如何定义我的stat功能在朱莉娅?

回答

9

如何在Julia中定义我的stat函数?

function stat(x) 
    n = length(x) 
    m = sum(x)/n 
    s = sqrt(sum((x-m).^2/n)) 
    return m, s 
end 

有关详细信息,请参阅朱莉娅文档中标题为Multiple Return Values部分:

在朱莉娅,一个返回值来模拟返回多个值的元组。 [...]

+0

是的,它的工作原理!我尝试使用下面的代码得到'm'和's'的值:x = [1,2,3]和(av,sd)= stat(x),但是我想知道如果'x'是' m by n'矩阵,某人如何得到由'm'条目填充的每列'n'的结果? – Echetlaeus 2014-11-24 00:14:57

+0

Julia的索引表示法使用方括号(不是parens,如在MATLAB中)。所以,如果'x'是一个'2x2数组','x [i,j]'是第i行第j列的条目(假设'i'和'j'是有效的指数)。 – Jubobs 2014-11-24 08:08:32