将一列非数字数据插入任意位置的单元格列,并将旧数据移到右侧

时间:2015-11-23 04:33:11

标签: matlab insert cell shift

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

my_word =

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

my_column =

'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'

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

1 个答案:

答案 0 :(得分:1)

操纵单元阵列与普通矩阵非常相似。如果i是要插入的列,

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

会实现你的目标。它将my_word分解为第一个和第二个半部分,然后将它们连接在一起,并将my_column连接在一起。