我今天在 Mathematica 中遇到了这个错误:
Set::shape: "Lists {0,0,0,0,0,0,0,0,0,0} and {0,0,0,0,0,0,0,0,0,0,{1}} are not the same shape" >>
其中3个之后:
General::stop : Further output of Set::shape will be suppressed during this calculation. >>
我很困惑为什么我不能在我的零列表中添加“1”。这是因为我无法编辑传递给函数的列表吗?如果是这样,我怎么能编辑该列表并以某种方式返回或打印它?
这是我的完整代码:
notFunctioningFunction[list_] := (For[i = 1, i < 10, i++, list = Append[list, {1}]];
Print[list])
list = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
notFunctioningFunction[list]
我追加“{1}”的原因是因为在我的函数中,我正在求解一个等式,并获得输出{1}的变量的值。这是我的代码:
varName / . Solve[ function1 == function2 ]
显然我是 Mathematica 的初学者所以请耐心等待:)
谢谢,
颊
答案 0 :(得分:3)
追加需要一个列表和一个元素。像这样:
Append[{1,2,3,4},5]
如果您有两个列表,则可以使用Join。像这样:
Join[{1,2,3,4},{5}]
这两个结果都会产生相同的结果:{1,2,3,4,5}。
答案 1 :(得分:2)
亲爱的Mathematica初学者。
首先,当你使用像
这样的东西时{a,b} = {c,d,e};
在Mathematica中,在两个列表之间,程序有一个难点,因为这是一个用于为变量赋值的构造,它需要(除其他外)两个列表相等。
如果你想要的只是在现有的和命名的列表中添加一个“1”,一次一个,最好的结构是:
AppendTo[list, 1];
(此构造将修改变量'list')
或
list = Join[list, {1}];
第二:关于错误消息,它们在评估中默认打印3次,然后静音,以便一长串相同的错误消息不会使您的显示混乱。
第三,如果您需要将10个1添加到列表中,则无需在循环中构造它。你可以一次性完成:
list = Join[list, Table[1, {10}]]
或者,初学者更加神秘
list = Join[list, Array[1&, 10]]