如何在Julia中实现数组到矩阵的转换
我想选择一个(5*7)的列,它的索引是C,然后计算它的倒数。然而,这里的B是5*1数组,而不是正方形矩阵。我怎样才能做到呢如何在Julia中实现数组到矩阵的转换,julia,Julia,我想选择一个(5*7)的列,它的索引是C,然后计算它的倒数。然而,这里的B是5*1数组,而不是正方形矩阵。我怎样才能做到呢 A = [1 2 1 0 0 0 0; 1/3 1 0 1 0 0 0; 4 1 0 0 1 0 0; -4 2 0 0 0 1 0; -6 2 0 0 0 0 1] C = [3 4 5 6 7]' B = [A[:,i] for i in C] x = inv(B)*b b未定义。这是什么 B通过预定切片的向量工作:C=vec
A = [1 2 1 0 0 0 0;
1/3 1 0 1 0 0 0;
4 1 0 0 1 0 0;
-4 2 0 0 0 1 0;
-6 2 0 0 0 0 1]
C = [3 4 5 6 7]'
B = [A[:,i] for i in C]
x = inv(B)*b
C=vec([3 4 5 6 7])
B=[a[y,i]表示C中的i,y表示1:5]
B
(与本例中的矩阵本身相同)乘以(小)B
应该可以工作。
答复:或者,根据Ultima Ratio的建议,您可以简单地写下:
B = A[:, C]
(要使其正常工作,C
应为列向量)
此外,在这种情况下,最好简单地将C
定义为:
C = 3:7
或
编辑:在代码中:
C = [3 4 5 6 7]'
是5x1矩阵而不是向量。要将其转换为向量,请写入
vec(C)
。所以A[:,vec(C)]
会给你一个矩阵。b只是一个向量。谢谢。它起作用了!但是B=[A[y:,i]代表C中的i,y代表1:5]代表3。对于C中的i,应为B=[A[y,i],对于1:5中的y,仅为A:“在这种情况下,B将成为三维数组。有没有把它转换成二维的好方法?朱莉娅:对不起,我会让我的回答更准确C
必须是一个列向量(我添加了一个编辑)。是的,它可以工作。很有趣。我必须检查向量和数组之间的区别,区别在于矩阵有两个维度。他们两人都“进入”了指数。如果数组具有维度5x1
,则值5
作为第二个索引,值1
作为第三个索引。这就是为什么在编写a[:,C]
时会得到一个三维数组,而第三维数组的长度为1。
C = [3,4,5,6,7]
C = [3 4 5 6 7]'