2014-11-23 50 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