function - 从 Julia 中的函数中收集值

标签 function julia broadcast

我的问题是关于在 Julia 中使用广播运算符。

假设我有以下对象

M = [0.7 0.3; 0.4 0.6];
x0 = [100 100];
N=5;
y = zeros(N, size(x0)[2]);

function Markov_bling_bling(;Trans_mat, initial_states, n_ahead)
    # Define useful names
    M = Trans_mat; x0 = initial_states; N = n_ahead;
    # Compute the N-th state 
    xn = x0 * M^N
    return(x_n = xn)
end

(抱歉这个愚蠢的名字)

所以这个函数返回一个 1x2 向量。

所以我想将每个 xn 作为一行存储在 y 中。

在 R 中我会这样做:

y <- list()
for(t in 1:(N+1)){
  y[t] = Markov_bling_bling(Trans_mat = M, initial_states = x0, n_ahead=(t-1))
}

y <- Reduce(rbind,x)

我如何在 Julia 中完成此操作?我知道我必须使用广播运算符以避免 for 循环

但我仍然不知道如何存储结果,我应该定义 y = [] 吗? Julia 存储结果的方式是什么?

提前致谢!

最佳答案

它可以用几乎与 R 中相同的方式编写:

julia> reduce(vcat, [Markov_bling_bling(Trans_mat = M, initial_states = x0, n_ahead=(t-1)) for t in 1:N])
5×2 Matrix{Float64}:
 100.0   100.0
 110.0    90.0
 113.0    87.0
 113.9    86.1
 114.17   85.83

关于function - 从 Julia 中的函数中收集值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73938865/

相关文章:

c - 我应该在函数内部分配内存还是调用函数

regression - 使用 GLM 进行逻辑回归

java - 如何设置udp广播的源地址?

Julia :UndefRefError:访问 undefined reference

android - 如果应用程序已经运行(Android 模拟器、Lollipop),则仅捕获 BOOT_COMPLETED 广播

java - 如何计算android中上传/下载数据大小?

c - 为什么 main 中的矩阵会改变?

azure - Ansible 部署 Azure Function

javascript - jQuery 如何使函数全局化?或文档级别?

julia - 在 Julia 中将程序的文档字符串打印到标准输出