[R] Rotate array by 90°
Karim Mezhoud
kmezhoud at gmail.com
Thu Feb 5 23:14:56 CET 2015
Thanks Jeff and Rui.
On Thu, Feb 5, 2015 at 11:12 PM, Rui Barradas <ruipbarradas at sapo.pt> wrote:
> Hello,
>
> Try the following.
>
>
> rot90 <- function(x, n = 1){
> r90 <- function(x){
> y <- matrix(rep(NA, prod(dim(x))), nrow = nrow(x))
> for(i in seq_len(nrow(x))) y[, i] <- rev(x[i, ])
> y
> }
> for(i in seq_len(n)) x <- r90(x)
> x
> }
>
> mat <- matrix(letters[1:9], byrow = TRUE, nrow = 3)
>
> rot90(mat)
> rot90(mat, 3)
>
>
> Hope this helps,
>
> Rui Barradas
>
> Em 05-02-2015 21:17, Karim Mezhoud escreveu:
>
>> Dear aal,
>>
>> Is there a way to rotate array or a cube of matrices by Y axis?
>>
>>
>> MatLab example:
>>
>> A = cat(3,{'a' 'b' 'c';'d' 'e' 'f';'g' 'h' 'i'},{'j' 'k' 'l';'m' 'n'
>> 'o';'p' 'q' 'r'})
>>
>> A(:,:,1) =
>>
>> 'a' 'b' 'c'
>> 'd' 'e' 'f'
>> 'g' 'h' 'i'
>>
>>
>> A(:,:,2) =
>>
>> 'j' 'k' 'l'
>> 'm' 'n' 'o'
>> 'p' 'q' 'r'
>>
>> Rotate the cell array by 270 degrees.
>>
>> B = rot90(A,3)
>>
>> B(:,:,1) =
>>
>> 'g' 'd' 'a'
>> 'h' 'e' 'b'
>> 'i' 'f' 'c'
>>
>>
>> B(:,:,2) =
>>
>> 'p' 'm' 'j'
>> 'q' 'n' 'k'
>> 'r' 'o' 'l'
>>
>>
>> karim
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/
>> posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
[[alternative HTML version deleted]]
More information about the R-help
mailing list