我将输入N作为lisp中2D矩阵的行数,其中每行最多可包含5个元素。所以我这样做。现在为每一行,因为它可以有0到5之间的任意数量的元素。所以我创建了一个sepearte数组来存储每行2D矩阵的大小,并在我推动其中的任何元素时递增它
var table = document.getElementById("mytab1");
var textbox=document.getElementById("textbox")
for (var i = 0, row; row = table.rows[i]; i++) {
for (var j = 0, col; col = row.cells[j]; j++) {
if(textbox.value=="")
{
textbox.value=row.cells[j].innerText;
}
else
{
textbox.value+= textbox.value+','+row.cells[j].innerText;
}
}
}
现在当我需要向任何行添加元素时,我接受输入,而行具有最大元素,或者用户自己退出以输入该行中的任何其他元素。要向第i行添加元素,我会执行以下操作:
(setq myMatrix (make-array (list N 5)))
(setq sizeArray (make-list N:initial-element 0))
现在我想要打印这个myMatrix的第一行像这样:
(setf (aref myMatrix i (nth i sizeArray)) "Hi")
// Hi is just for example here
(setf (nth i sizeArray) (+ 1 (nth i sizeArray)))
直接地,我想要第i行的第j个值。我们如何在lisp中获得这个?
答案 0 :(得分:1)
因为你正在使用一系列列表如何:
(defun element-of-matrix (matrix i j)
(nth j (aref matrix i)))