【问题标题】:MATLAB: Format Character Array Output Back to the Declared VariablesMATLAB:将字符数组输出格式化回声明的变量
【发布时间】:2019-09-21 02:22:47
【问题描述】:

此字符数组使用 for 循环来索引 (basketArray) 数据,使用 IF 检查数据中的下标 (00),如果为 true,则删除 (00) 下标。这是通过以下输出实现的:

rmsubscript = applesorangespineapplespinachbroccoliturnips.

下一步是我遇到问题的地方:如何将字符数组输出返回到其声明的 x 和 y 容器中,按列格式化并分隔为:

x =

apples
oranges
pineapple

y =

 spinach
 broccoli
 turnips

这是我的代码:

x = ['00apples', 'oranges', '00pineapple']
y = ['00spinach', 'broccoli', '00turnips']

basketArray = [x, y]
pattern = '00';
subscript = contains(basketArray, pattern);
for k = basketArray
    if subscript == contains(basketArray, pattern);
            rmsubscript = regexprep(basketArray, '00', ''),                                                    
    end
end

【问题讨论】:

  • 实际上,您不会,因为将它们连接到字符向量中是破坏性的(并且不必要)。将您的单词存储在元胞数组中,regexprep 可以原生处理它们。

标签: arrays matlab for-loop if-statement


【解决方案1】:

使用string arrayscell arrays 包含您的文字。请注意,xy 可能不是您所期望的:

x =

    '00applesoranges00pineapple'

y =

    '00spinachbroccoli00turnips'

regexprep 在元胞和字符串数组上都可以原生工作:

x = {'00apples', 'oranges', '00pineapple'};
y = {'00spinach', 'broccoli', '00turnips'};

basket = [x; y];
new_basket = regexprep(basket, '00', '')

x = ["00apples", "oranges", "00pineapple"];
y = ["00spinach", "broccoli", "00turnips"];

basket = [x; y];
new_basket = regexprep(basket, '00', '')

两者都产生了预期的结果:

new_basket = 

  2×3 string array

    "apples"     "oranges"     "pineapple"
    "spinach"    "broccoli"    "turnips"  

【讨论】:

    猜你喜欢
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    相关资源
    最近更新 更多