我是Python 3.4的新手,我通常使用MATLAB/GNU Octave进行矩阵计算.我知道我们可以在Python 2.x中使用numpy执行矩阵计算,但是numpy对Python 3.4不起作用.
我试图创建此代码以输入m×n矩阵.我打算输入,[[1,2,3],[4,5,6]]但代码产生[[4,5,6],[4,5,6].当我输入其他m乘n矩阵时,同样的事情发生,代码产生一个m乘n矩阵,其行是相同的.
也许你可以帮我找到我的代码有什么问题.
m = int(input('number of rows, m = '))
n = int(input('number of columns, n = '))
matrix = []; columns = []
# initialize the number of rows
for i in range(0,m):
matrix += [0]
# initialize the number of columns
for j in range (0,n):
columns += [0]
# initialize the matrix
for i in range (0,m):
matrix[i] = columns
for i in range (0,m):
for j in …Run Code Online (Sandbox Code Playgroud) 我使用的是SWI-Prolog版本7.6.3,最近我遇到了将数字和字母组合成一个术语转换为ASCII值列表的问题.
我知道我们可以使用name/2谓词获取特定术语的ASCII值列表.例如,如果我想获得长期的ASCII值ab或者'ab',那么我们就可以使用name(ab,X).Prolog只是输出X = [97, 98],97和98分别是a和b的ASCII值.
谓词name/2也适用于数字.如果我想获得长期的ASCII值123或者'123',那么我们就可以使用name(123,X).同样,Prolog只输出X = [49, 50, 51]49,50和51相应的ASCII值1,2和3.
但是,name/2如果我在一个术语中组合数字和字母,则谓词不起作用.例如,我期望name(2a,X)返回X = [49, 97]和name(3b,X)返回X = [50,98].但是,解释器会给出错误异常,说明操作符是预期的.
我注意到只有术语以数字开头才会出现问题.我检查了按预期name(a2,X)返回的解释器X = [97, 49].
我该如何解决这个问题?或者这种情况本身不能在Prolog中处理?