【发布时间】:2011-12-22 19:54:47
【问题描述】:
首先,很抱歉标题混乱。
我想做的是将{1, 4, 9}转换为:
{True, False, False, True, False, False, False, False, True}
也就是说,只有第一个列表中的索引的值为True,其余的为False。
我感觉有一些非常简单的解决方案,但我对 Mathematica 和函数式编程都很陌生。我可以在一个循环中迭代地完成它,但必须有一些东西可以与整个列表一起使用。正确的? :)
感谢您的帮助。
编辑:表明我在问之前尝试做某事,这是我到目前为止的进展:
first={1,4,9}
ReplacePart[Table[False, {x, Max[first]}], {1} -> True]
(* gives {True, False, False, False, False, False, False, False, False} *)
不幸的是,它不适用于{1,4,9} -> True,但可以用于{1 -> True, 4 -> True, 9 -> True}。但我不知道该怎么做......
编辑 2: 明白了。
ReplacePart[Table[False, {x, Max[first]}], Table[x -> True, {x, first}]]
我仍然希望看到您的解决方案!这对我来说似乎是一个丑陋的黑客...... :)
【问题讨论】:
标签: list wolfram-mathematica boolean