Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Extract array dimensions in Julia

Given a vector A defined in Matlab by:

A =  [ 0
       0
       1
       0
       0 ];

we can extract its dimensions using:

size(A);

Apparently, we can achieve the same things in Julia using:

 size(A)

Just that in Matlab we are able to extract the dimensions in a vector, by using:

[n, m] = size(A);

irrespective to the fact whether A is one or two-dimensional, while in Julia A, size (A) will return only one dimension if A has only one dimension.

How can I do the same thing as in Matlab in Julia, namely, extracting the dimension of A, if A is a vector, in a vector [n m]. Please, take into account that the dimensions of A might vary, i.e. it could have sometimes 1 and sometimes 2 dimensions.

like image 911
user3510226 Avatar asked Apr 15 '14 09:04

user3510226


2 Answers

A = zeros(3,5)
sz = size(A)

returns a tuple (3,5). You can refer to specific elements like sz[1]. Alternatively,

m,n = size(A,1), size(A,2)

This works even if A is a column vector (i.e., one-dimensional), returning a value of 1 for n.

like image 189
tholy Avatar answered Oct 18 '22 20:10

tholy


This will achieve what you're expecting:

n, m = size(A); #or 
(n, m) = size(A);

If size(A) is a one dimensional Tuple, m will not be assigned, while n will receive length(A). Just be sure to catch that error, otherwise your code may stop if running from a script.

like image 37
catastrophic-failure Avatar answered Oct 18 '22 20:10

catastrophic-failure