为什么 v[1+(0×(⍴v))] 会产生等级错误,而不是 2D 数组中的第一个项目?

huangapple go评论110阅读模式
英文:

Why does v[1+(0×(⍴v))] produce a rank error and not the first item in a 2d array?

问题

首先,我将v分配为:

v ← ⍳(4 9)

v
┌───┬───┬───┬───┬───┬───┬───┬───┬───┐
│0 0│0 1│0 2│0 3│0 4│0 5│0 6│0 7│0 8│
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
│1 0│1 1│1 2│1 3│1 4│1 5│1 6│1 7│1 8│
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
│2 0│2 1│2 2│2 3│2 4│2 5│2 6│2 7│2 8│
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
│3 0│3 1│3 2│3 3│3 4│3 5│3 6│3 7│3 8│
└───┴───┴───┴───┴───┴───┴───┴───┴───┘

接下来,我尝试像这样访问左上角的元素:

v[1+(0×(⍴v))]

然而,我得到一个秩错误。

这里发生了什么?

英文:

First, I assign v as:

v ← ⍳(4 9)

v
┌───┬───┬───┬───┬───┬───┬───┬───┬───┐
│0 0│0 1│0 2│0 3│0 4│0 5│0 6│0 7│0 8│
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
│1 0│1 1│1 2│1 3│1 4│1 5│1 6│1 7│1 8│
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
│2 0│2 1│2 2│2 3│2 4│2 5│2 6│2 7│2 8│
├───┼───┼───┼───┼───┼───┼───┼───┼───┤
│3 0│3 1│3 2│3 3│3 4│3 5│3 6│3 7│3 8│
└───┴───┴───┴───┴───┴───┴───┴───┴───┘

Next I try to access the upper left element like so:

v[1+(0×(⍴v))]

Instead, I get a rank error

What's happening here?

答案1

得分: 2

你实际上正在计算 v[1 1],而你可能想要计算 v[1;1]。还可以尝试:(1+0×⍴v) ⌷ v

英文:

You are essentially computing v[1 1] while you probably meant to compute v[1;1]. Also try: (1+0×⍴v) ⌷ v

huangapple
  • 本文由 发表于 2023年3月4日 06:35:33
  • 转载请务必保留本文链接:https://go.coder-hub.com/75632408.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定