У меня есть следующая матрица A = [1.00 2.00; 3.00 4.00]
и мне нужно, чтобы преобразовать его в вектор векторов следующим образом:Как преобразовать матрицу в вектор векторов?
A1 = [1.00; 3.00] A2 = [2.00; 4.00]
Есть идеи?
У меня есть следующая матрица A = [1.00 2.00; 3.00 4.00]
и мне нужно, чтобы преобразовать его в вектор векторов следующим образом:Как преобразовать матрицу в вектор векторов?
A1 = [1.00; 3.00] A2 = [2.00; 4.00]
Есть идеи?
Т.Л., др
Это может быть очень элегантно создан с списком понимания:
A = [A[:,i] for i in 1:size(A,2)]
Это, по существу, преобразует A
из чего-то, что было бы проиндексировано как A[1,2]
тому, что было бы проиндексировано как A[2][1]
, это то, что вы просили.
Здесь я непосредственно передаю A
, что мне кажется, что вы имели в виду. Но сделайте это, только если код недвусмыслен! Как правило, не очень хорошо иметь переменные с одинаковым именем, которые представляют разные вещи в разных точках кода.
ПРИМЕЧАНИЕ: если это обращение из строки/столбца в порядок индексации не порядок вы имели в виду, и вы бы предпочли A[1,2]
быть проиндексированы, как A[1][2]
, а затем выполнить список вашего понимания «в row 'вместо этого, т.е.
A = [A[i,:] for i in 1:size(A,1)]
Было бы гораздо лучше просто использовать кусочки вашей матрицы т.е. вместо A1 использовать A[:,1]
и вместо А2 использовать A[:,2]
Если вам действительно нужно, чтобы они были «Seperate» возражения вы могли бы попробовать создать массив ячеек так:
myfirstcell = cell(size(A,2)) for i in 1:size(A,2) myfirstcell[i] = A[:,i] end
См http://docs.julialang.org/en/release-0.4/stdlib/arrays/#Base.cell
(Массивы ячеек позволяют несколько различных типов объектов, которые будут храниться в одном массиве)
Вы можете, по крайней мере, иметь массив массивов явно, без необходимости использовать 'cell'' A_vec = Array {Array {eltype (A), 1}, размер (A, 2)} ' –
Согласованный, принятый ответ по-прежнему гораздо лучше! –
Хотите вектор вектора или отдельных объектов для каждого вектора? В ваших текстовых индикаторах изображен первый, ваш код показывает последний. –
Кроме того, можете ли вы дать контекст, почему вам это нужно? Почти в каждом случае, о котором я могу думать, вам лучше просто ссылаться на столбцы, пока они все еще находятся в вашей матрице или не более, создавая отдельные представления их с помощью 'sub()', например. 'B = sub (A, 1: размер (A, 2), 1)'. –