吱吱声:创建具有指定行和列的矩阵

时间:2019-04-27 05:47:29

标签: matrix smalltalk squeak

我只是想在Squeak(Smalltalk)中进行分配,而且我不知道如何创建具有特定数量的行和列的矩阵。

我知道可以创建一个A := Matrix new:3.之类的3x3矩阵,但是我需要一个3x2矩阵。系统浏览器对于我对如何执行此操作的帮助不大,而且我已经在互联网上搜索了一段时间,并且没有找到任何帮助的方法。谁能举一个示例代码行,说明如何创建3x2矩阵?

2 个答案:

答案 0 :(得分:5)

您应该了解Smalltalk如何处理构造函数-始终检查Class类。

如果您检查Matrix class,则会发现#new:在内部使用^ self rows: dimension columns: dimension。这意味着您:

aMatrix := Matrix new:3

实际上是

aMatrix := Matrix rows: 3 columns: 3,恰好是您要搜索的内容。

在我眼里,#new:消息不是一个好的选择。我希望有一个#squareSize:或类似的东西。

注意:请勿将大写字母用作变量(根据您的A :=设置进​​行评论)

编辑:为什么不对局部/实例变量使用大写字母?

开头的大写字母保留用于全局变量。您拥有TranscriptSmalltalk之类的信息。例如,类名也是全局变量,这就是为什么您拥有Matrix not matrix的原因。对于类实例,您可以将previx与aan一起使用,就像我曾经使用过aMatrix是类Matrix的实例一样。

不同的Smalltalk口味之间可能会有糖浆差异。例如,在Smalltalk / X中,类变量以大写字母开头,据我所知,在GNU Smalltalk中不是这种情况。

答案 1 :(得分:2)

对于任何想知道如何执行此操作的人,我现在都有解决方案。它的 var := Matrix rows: A columns: B.创建一个矩阵(A x B),其中A和B是整数。