【问题标题】:Selecting a matrix row by name Mathematica按名称选择矩阵行 Mathematica
【发布时间】:2015-08-12 10:17:16
【问题描述】:

我在 Mathematica 中有一个矩阵,定义为 A = {{"a", 1, 2}, {"b", 3, 4}}

如何按名称选择行"a"??

我尝试的一切都返回{}

谢谢

【问题讨论】:

    标签: matrix wolfram-mathematica


    【解决方案1】:

    未经测试,此计算机上未安装 Mathematica

    Cases[A, {"a",_,_}]
    

    与 Mathematica 一样,可能还有其他方法。最好不要将A 视为矩阵,而是将其视为列表。并且供将来参考:您应该真正报告您尝试过的所有内容。

    【讨论】:

    • 谢谢!这太奇怪了......它适用于我发布的最小示例,但不适用于我真正想要使用的更复杂的版本!我使用 data = Take[Import["filepath/file.csv", "CSV"]] 导入了一个 cvs 文件,每行中的第一项是一个字符串(我使用 Head[data[[1,1]]但如果我尝试 Cases[data, {"cec_DCs", _, _}] 我会得到 {}。cec_DCs 是 data[[1,1]] 处的字符串
    • 它适用于我发布的最小示例,但不适用于我实际想要使用的更复杂的版本问你想要回答的问题,而不是它们的简化版本。不要在 cmets 中提问或扩展问题,严肃点,你能弄清楚评论中写的源代码吗?
    • @Steph D 我刚刚尝试了他的代码,包括“a”和“cec_DCs”,每个都有效。使用 FullForm 查看矩阵中的行,看看字符串中是否隐藏了任何可能导致此失败的内容。如果这不起作用,则重新启动 Mathematica,在导入和案例之前不要做任何事情,看看是否可以解决它。如果这不起作用,则将您的 csv 文件托管在人们无需注册、登录等即可获取它的地方,并让其他人看到字符串不匹配的原因。并且您可以在所有需要的信息之上编辑您的原始帖子。
    • 请注意,此答案假设您有完全两列。您可以尝试Cases[ A , {"a", __}](即两个下划线),它将匹配任意数量的列
    • 双下划线有效!非常感谢大家的帮助!斯蒂芬
    猜你喜欢
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多