使用“删除”或“删除”的Mathematica Do / For循环不起作用

时间:2015-03-28 12:57:55

标签: wolfram-mathematica

initlNum453 = List[];
num1 = 2;
(*Pt1, initial work to make initlNum full of good variables*)
algorithmicNum = 1;
For[i7 = 1, i7 <= (num1 + 1)^2, i7++,
AppendTo[initlNum453, algorithmicNum];
If[((algorithmicNum) == (num1 + 1)), algorithmicNum = 1, 
 algorithmicNum++];
];

(*Pt2, delete unneeded variables*)
deleteValue = 1;
Do[
Delete[initlNum453, deleteValue];
 deleteValue = (deleteValue + num1 + 2);
 , {num1 + 1}
]

这是我试图制作的代码片段(它涉及伪自动化拉格朗日多项式)。它应该很简单;第一部分在列表中创建一系列数字,然后第二部分应删除特定部分(例如,如果n = 2则为1,4,7)。

出于某种原因,出现以下情况之一:

  1. 没有错误,但列表中的元素保持不变/没有元素被删除
  2. 取出分号表示___中的标记时间是受保护的&#34; - 有人可以解释这究竟是什么意思吗?
  3. 将此项放入模块时,错误会指出表达式。&#39;不能用作零件规格。请改用密钥[ .`]。
  4. 无论如何,我不明白为什么这么简单的东西在Mathematica上不起作用。 &#34;删除&#34;函数在for / do循环之外工作,但不在里面 - 有人可以解释为什么或告诉我我做错了什么吗?

    感谢您的帮助!我很感激!

1 个答案:

答案 0 :(得分:2)

你需要写一些像

这样的东西
initlNum453 = Delete[initlNum453, deleteValue]