# [R] converting MATLAB -> R | element-wise operation

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Tue Feb 27 23:36:27 CET 2024

```... and here is a more or less direct translation of the Matlab code that
should now be obvious given your previous responses:

> m <- matrix(1:6, nr=2, byrow = TRUE) ## Matlab order
> m
[,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
> sweep(m, 2, 2:4, "/")
[,1]      [,2] [,3]
[1,]  0.5 0.6666667 0.75
[2,]  2.0 1.6666667 1.50

Cheers,
Bert

On Tue, Feb 27, 2024 at 1:03 PM Evan Cooch <evan.cooch using gmail.com> wrote:

> So, trying to convert a very long, somewhat technical bit of lin alg
> MATLAB code to R. Most of it working, but raninto a stumbling block that
> is probaably simple enough for someone to explain.
>
> Basically, trying to 'line up' MATLAB results from an element-wise
> division of a matrix by a vector with R output.
>
> Here is a simplified version of the MATLAB code I'm translating:
>
> NN = [1, 2, 3; 4, 5, 6];  % Example matrix
> lambda = [2, 3, 4];  % Example vector
> result_matlab = NN ./ lambda;
>
> which yields
>
>   0.50000   0.66667   0.75000
>   2.00000   1.66667   1.50000
>
>
> So, the only way I have stumbled onto in R to generate the same results
> is to use 'sweep'. The following 'works', but I'm hoping someone can
> explain why I need something as convoluted as this seems (to me, at least).
>
> NN <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, byrow = TRUE)  # Example matrix
> lambda <- c(2, 3, 4)  # Example vector
> sweep(NN, 2, lambda, "/")
>
>
>       [,1]      [,2] [,3]
> [1,]  0.5 0.6666667 0.75
> [2,]  2.0 1.6666667 1.50
>
> First tried the more 'obvious' NN/lambda, but that yields 'the wrong
> answer' (based solely on what I'm trying to accomplish):
>
>
>         [,1] [,2] [,3]
> [1,] 0.500000  0.5  1.0
> [2,] 1.333333  2.5  1.5
>
> So, why 'sweep'?
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help