【问题标题】:Insert a column of non-numeric data into a cell's column at arbitrary location and shift old data to the right将一列非数字数据插入到任意位置的单元格列中,并将旧数据向右移动
【发布时间】:2016-02-25 03:07:45
【问题描述】:

我需要将具有非数字数据单元格(一个或多个字符串)的列(向量)插入到任意位置的非数字数据单元格中,并通过将旧数据列向右移动来保留旧数据列。

我的单词 =

's'    'i'    'p'
's'    'i'    'p'
's'    'i'    'p'
's'    'i'    'p'
's'    'i'    'p'

我的列 =

'a'
'b'
'c'
'd'
'e'

result_cell_1 =

's'    'a'    'i'    'p'
's'    'b'    'i'    'p'
's'    'c'    'i'    'p'
's'    'd'    'i'    'p'
's'    'e'    'i'    'p'

result_cell_2 =

's'    'i'    'a'    'p'
's'    'i'    'b'    'p'
's'    'i'    'c'    'p'
's'    'i'    'd'    'p'
's'    'i'    'e'    'p'

主要问题是我想在第二个和第三个位置插入一列。此外,我不限于示例中的长度,因此解决方案应该允许我循环任意长度的行并在每个位置增量插入一列。另外,我有一个替换每一列的解决方案,包括第一列和最后一列,所以它们不是问题。问题出在中间,长度并不总是相同的。

【问题讨论】:

  • 你真的希望结果被称为result_cell_1吗?像这样的变量名通常很难使用。单元格数组可能会更好,result_cell{1}=...
  • 名字不重要
  • 此外,您需要更好地解释这一点“解决方案应该允许我循环任意长度的行并在每个位置增量插入一列”以及为什么您现有的代码(您应该也包括)不能这样做。
  • @David 鼓励您提供有关您所尝试的更多详细信息是正确的。它使获得有用的答案变得更加容易,并且对以后发现问题的任何人都更有用。
  • 我只是想说,解决方案不应该是在 n x 4 单元格中插入一列,而应该是 n x m。至于代码,它只是将一列替换为另一列而不移位。

标签: matlab insert cell shift


【解决方案1】:

操作元胞数组与普通矩阵非常相似。如果i 是要插入的列,

result = [my_word(:,1:i-1) my_column my_word(:,i:end)]

会实现你的目标。它将my_word 分成前半部分和后半部分,并将它们与中间的my_column 连接在一起。

【讨论】:

  • @David,他想插入一列,所以切开所有行(:,cols)
  • 有效!谢谢@kmac!
猜你喜欢
  • 1970-01-01
  • 2020-11-29
  • 2014-04-12
  • 2021-04-27
  • 2021-04-22
  • 2018-12-17
  • 1970-01-01
  • 2016-04-22
  • 2016-02-14
相关资源
最近更新 更多