# Converting a Matlab code into Julia

**URL:** <https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166>\
**Category:** New to Julia\
**Created:** [July 4, 2018, 3:03pm UTC](https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166 "2018-07-04T15:03:56Z")\
**Posts on this page:** 12\
**Page:** 2

<div class="post-metadata">

**Author:** ![ericsfraga](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ericsfraga/32/192_2.png) [@ericsfraga](https://discourse.julialang.org/u/ericsfraga)\
**Post date:** [July 19, 2018, 1:55pm UTC](https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166/23 "2018-07-19T13:55:17Z")

</div>

What about just x[x .\> 5]?

---

<div class="post-metadata">

**Author:** ![ericsfraga](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ericsfraga/32/192_2.png) [@ericsfraga](https://discourse.julialang.org/u/ericsfraga)\
**Post date:** [July 19, 2018, 3:09pm UTC](https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166/24 "2018-07-19T15:09:15Z")

</div>

And obviously I meant:

(1:10)[x .\> 5]

if you want the indices and not the values.

---

<div class="post-metadata">

**Author:** ![Elrod](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/elrod/32/22461_2.png) [@Elrod](https://discourse.julialang.org/u/Elrod)\
**Post date:** [July 19, 2018, 3:21pm UTC](https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166/25 "2018-07-19T15:21:00Z")

</div>

> [@ericsfraga](#):
>
> x[x .\> 5]  
> (1:10)[x .\> 5]

Both of those work, and subsetting is more concise and common across languages than comprehensions.  
I think the comprehension is more readable though, and it doesn’t allocate a temporary for the `x >. 5`.

Not that printing is performance critical. Probably best to focus on whatever new users are likely to find easiest.

---

<div class="post-metadata">

**Author:** ![ericsfraga](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ericsfraga/32/192_2.png) [@ericsfraga](https://discourse.julialang.org/u/ericsfraga)\
**Post date:** [July 19, 2018, 3:56pm UTC](https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166/26 "2018-07-19T15:56:58Z")

</div>

Yes, I agree that a comprehension is more readable and that, in itself,  
makes it worth choosing this approach. I guess that the subsetting is  
possibly more comfortable for somebody converting code from MATLAB, for  
instance, but it’s a short term solution.

And thanks for pointing out the extra allocation in subsetting. Could  
make the difference in some codes.

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [July 19, 2018, 4:58pm UTC](https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166/27 "2018-07-19T16:58:18Z")

</div>

Surely, this is a job for `find` / `findall?`

```julia
find(x->x>5, v) # on 0.6
findall(x->x>5, v) # on 0.7

```

---

<div class="post-metadata">

**Author:** ![RoyiAvital](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/royiavital/32/571_2.png) [@RoyiAvital](https://discourse.julialang.org/u/RoyiAvital)\
**Post date:** [July 20, 2018, 6:35am UTC](https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166/28 "2018-07-20T06:35:53Z")

</div>

I think `findall()` in 0.7 returns Cartesian Indices.  
Is there a way to make it return Linear Indices like `find()` in 0.6 / MATLAB?  
Is the only way to wrap it with Subscript to Linear function?

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [July 20, 2018, 7:59am UTC](https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166/29 "2018-07-20T07:59:15Z")

</div>

I’ve found it really hard to figure out how to convert an array of `CartesianIndex` to linear indices.

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [July 20, 2018, 10:02am UTC](https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166/30 "2018-07-20T10:02:39Z")

</div>

> [@DNF](#):
>
> I’ve found it really hard to figure out how to convert an array of `CartesianIndex` to linear indices.

See [Finding Position of Element in an Array - #9 by kristoffer.carlsson](https://discourse.julialang.org/t/finding-position-of-element-in-an-array/12502/9)

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [July 20, 2018, 10:13am UTC](https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166/31 "2018-07-20T10:13:55Z")

</div>

That’s a awful memory wasting method.

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [July 20, 2018, 10:29am UTC](https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166/32 "2018-07-20T10:29:42Z")

</div>

> [@joa-quim](#):
>
> That’s a awful memory wasting method.

What is?

---

<div class="post-metadata">

**Author:** ![Per](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/per/32/10387_2.png) [@Per](https://discourse.julialang.org/u/Per)\
**Post date:** [July 20, 2018, 10:32am UTC](https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166/33 "2018-07-20T10:32:36Z")

</div>

> [@joa-quim](#):
>
> That’s a awful memory wasting method.

Just to be clear `LinearIndices` objects look and behave like arrays (because they are) but they do not require the storage of an `Array`.

```julia
julia> @btime LinearIndices((1000000, 1000000));
  1.302 ns (0 allocations: 0 bytes)

```

---

<div class="post-metadata">

**Author:** ![Aquaman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aquaman/32/6586_2.png) [@Aquaman](https://discourse.julialang.org/u/Aquaman)\
**Post date:** [March 6, 2019, 9:47am UTC](https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166/34 "2019-03-06T09:47:06Z")

</div>

Hi Kristoffer,

I want to ask, which best tool that I can convert matlab code to Julia, now some tools not support any more in GitHub…

Best

[Previous page](https://discourse.julialang.org/t/converting-a-matlab-code-into-julia/12166.md?page=1)
