【发布时间】:2017-10-19 13:00:51
【问题描述】:
创建像 d = [1 2 3 4 5 6 7 8 9] 这样的数组会创建一个维度为 2 的 1x9 数组(附带问题:为什么是二维?)。
这可以用作矩阵和向量乘法中的行向量。
访问d[2:5] 的范围不会返回排列在1x4 数组中的值。结果基本上是一个维度为4x1 的列向量。
(在 Matlab/Octave 中,访问向量范围时会保持维度。)
但是,使用d[:,2:5](而不是d[1,2:5])返回行向量。
这对我来说似乎很奇怪,因为这意味着我必须始终注意行/列向量。
那么这真的是预期用途还是我走错了路?
另外,有人能解释一下为什么d[:,2:5] 有效,而d[1,2:5] 无效吗?
【问题讨论】:
-
“我总是要注意行/列向量”我认为这是预期的行为。
d = [1 2 3 4 5 6 7 8 9]有两个维度,因为在多个“列”上扩展的所有内容都有第二个维度,即使该行只有一个。 -
一般不建议仅在一个 SO 帖子中提出多个问题仅供参考。
-
从技术上讲,您上面提到的“行向量”实际上是
1 -row Matrixaka1x4 Array。在 Julia 中,我们确实有一个RowVector类型(例如d[2:5].'和我们 take vector transposes seriously:[1,2,3].' * [1,2,3] #=> 14但[1 2 3] * [1,2,3] #=> [14] (1-element array)。与那些“草率”的语言不同,您必须认真了解 Julia 中的所有这些; )
标签: julia