【问题标题】:How to order and print string cells content by the match within the individual strings, Matlab?如何通过单个字符串中的匹配来排序和打印字符串单元格内容,Matlab?
【发布时间】:2013-12-29 08:04:35
【问题描述】:

我想打印一个单元格行的内容,使得匹配的字符串一个接一个。原行如下所示:

示例 1:

'E11E81'    'E21E81'    'E31E51'    'E31E61'    'E61E81'

从这一行,我想打印:

E11 - E81 - E61 - E31 - E51
       |
      E21

示例 2:

'E11E81'    'E21E82'    'E31E81'    'E31E83'    'E51E83'    'E61E82'    'E61E83'    'E81E82'

从这一行,我想打印:

E11 -  E81 - E31 - E83 - E5   
        |           |
 E21 - E82 - E61  - 

到目前为止,对于我使用的每个单元格位置

b = strncmp('E11E81',current_connection,6);
if  b == 1, disp('E1 - E81 - '); end

但我不知道如何更进一步。

有什么想法吗?谢谢你的想法!

【问题讨论】:

  • 我建议使用graphconncomp输出
  • 谢谢丹尼尔!虽然是一个挑战,这个功能只适用于 Matlab2013b,我有 Matlab2013a。我可以将它作为单独的工具箱安装吗?
  • 我们在这里需要一些约束...当 1 个字符串应该有 24 个连接时会发生什么?所有子字符串都是 3 个字符长吗?他们都遵循[A-z][0-9][0-9]的模式吗? ...等
  • 所有子字符串的长度为 3 个字符。 E11E31 表示元件 E11 与元件 E31 之间的连接。最大编号与元素的连接数是 3 次。因此,例如,E81 最多可以有 3 个连接:E81E31、E81E41 和 E81E51。它们都遵循相同的模式。
  • 必须是文本吗? schemaball 怎么样?

标签: string matlab printing pattern-matching cell


【解决方案1】:

已经提到的graphconncomp 的替代方案是gplot,但gplot 存在必须手动放置节点的问题。

让 C 成为你的连接矩阵:

[x,y]=ind2sub([ceil(sqrt(size(C,1))),ceil(sqrt(size(C,1)))],1:numel(C))
gplot(C, [x' y'])

这会将所有节点绘制在规则网格上,从左下角开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多