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 (I dim(L1) が N の乗算になるまで 23 を追加) を取り、次に 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 に 2 回足す)

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

dim(L1) = 3 の倍数である 18

Col1 = {9,12,15}、Col2 = {22,5,9}、...、Col6 = {19,23,23} で 3x6 行列を作成します。

http://tibasicdev.wikidot.com/forum/t-1039272/comments/show?from=activities#post-2131820 完全なコンボを読む. ここ

4

1 に答える 1

2

コードには少なくとも 2 つの問題があります。

(1) 拡張コマンドの場合、両方の行列が同じ数の行を共有する必要があります。プログラムの行列 [A] は次元 {1,1} に設定されていますが (なぜですか?)、追加する列のサイズが異なります。そのため、「寸法エラー」が発生します。

(2) List▶matr コマンドは行列を返しません (実際には何も返しません)。したがって、augment コマンドの 2 番目のパラメーターとして使用することはできません。代わりに、最初にそれを実行してから、augment([A],[B])▶[C] のようなものを使用する必要があります。

于 2015-03-18T21:19:22.133 に答える