1
:N-remainder(dim(L1),N→ dim(L2)
:Fill(23,L2
:augment(L1, L2->L1

:{1,1→dim([A]
:For(x,1,dim(L1)/N
:augment([A],List▶matr(seq(L1(I),I,Nx-N+1,Nx),[B]
:End

运行此 Ti-basic 代码时出现语法错误,我无法弄清楚原因(在将 List 转换为矩阵时发生在某处)。基本上,这段代码假设采用 L1(加 23 直到我暗淡(L1)是 N 的乘积),然后创建一个包含 N 行和 -int(-dim(L1)/n) 列的矩阵。

例子:

令 N=3 和 L1 = {9,12,15,22,5,9,14,4,9,1,14,7,9,18,12,19}

dim(L1) = 16 这不是 3 的乘积(18 是把 23 加到 L1 两次)

L1 = {9,12,15,22,5,9,14,4,9,1,14,7,9,18,12,19,23,23}

dim(L1) = 18 是 3 的倍数

创建一个 3x6 矩阵,其中 Col1 = {9,12,15}, Col2 = {22,5,9}, ..., Col6 = {19,23,23}

http://tibasicdev.wikidot.com/forum/t-1039272/comments/show?from=activities#post-2131820 阅读全文。这里

4

1 回答 1

2

您的代码至少有两个问题:

(1) 对于扩充命令,两个矩阵必须共享相同的行数。在您的程序中,矩阵 [A] 设置为维度 {1,1}(为什么?),但您要附加的列的大小不同。所以你会得到一个“尺寸错误”。

(2) List▶matr 命令不返回矩阵(实际上它不返回任何内容)。因此,您不能将其用作扩充命令的第二个参数。相反,您必须先运行它,然后使用类似 augment([A],[B])▶[C] 的东西。

于 2015-03-18T21:19:22.133 回答