假设我们有一个像这样定义的数组:
a=[1 2; 3 4; 5 5; 7 9; 1 2];
Run Code Online (Sandbox Code Playgroud)
在Matlab中,我们可以通过编写来找到最大值:
[x y] = max(a)
x =
7 9
Run Code Online (Sandbox Code Playgroud)
在朱莉娅,我们可以使用:
a=[1 2; 3 4; 5 5; 7 9; 1 2]
findmax(a,1)
Run Code Online (Sandbox Code Playgroud)
返回:
([7 9],
[4 9])
Run Code Online (Sandbox Code Playgroud)
但是,我感兴趣的不仅是找到两列的[7 9],还有它们在每列中的相对位置,如[4,4].当然,我可以写更多的编码行,但是我可以直接使用findmax吗?
我有一个编程值函数迭代的代码.代码是从Matlab翻译而来的.第一次迭代很好地滚动,但是在第二次迭代中,旧值函数在某个点错误地更新,尽管第二次迭代仍然从matlab产生等效结果.
首先,我在这里声明变量:
sigma = 1.5;
delta = 0.1;
beta = 0.95;
alpha = 0.30;
ks = 1.0;
csy = 0.2;
kmin = 0.1*ks;
kmax = 1.1*ks;
nbk = 20;
devk = (kmax-kmin)/(nbk-1);
k = linspace(kmin,kmax,nbk)';
v0 = zeros(nbk,1);
v0 = (csy*k.^alpha).^(1-sigma);
v0 = v0';
v = zeros(nbk,1);
ik1 = zeros(nbk,1);
iter = 1;
crit = 1;
tol = 1e-6;
Run Code Online (Sandbox Code Playgroud)
第二,我执行它(它是一个while循环),但我更喜欢在另一个之后执行一次迭代):
for i=1:nbk
imin = max(ceil(((1-delta)*k[i]-kmin)/devk)+1.0,1);
imax = min(floor((k[i]^alpha+(1-delta)*k[i]-kmin)/devk)+1.0,nbk);
imin=trunc(Int, imin);
imax=trunc(Int, imax);
c = k[i]^alpha+(1-delta)*k[i]-k[imin:imax];
u = (c.^(1-sigma)-1)/(1-sigma);
(v[i],itmp)= findmax(u+beta*v0[imin:imax]); …Run Code Online (Sandbox Code Playgroud) 在Matlab中我可以写:
[0:n]
Run Code Online (Sandbox Code Playgroud)
得到一个数组(1,n).对于n = 2,我得到:
0 1 2
Run Code Online (Sandbox Code Playgroud)
如何在朱莉娅做同样的事情?目的是获得相同类型的数组(1,3).
我知道我可以写[0 1 2],但我想要一些像Matlab一样的通用.
julia ×3