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

Insert a column of non-numeric data into a cell's column at arbitrary location and shift old data to the right

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

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'

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

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

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

将实现您的目标。它将 my_word 分成上半部分和下半部分,然后在中间用 my_column 将它们连接起来。