在matlab中将字符串转换为数字

时间:2016-06-30 09:24:19

标签: string matlab numbers

我有一个数组的单元格数组(字符串格式),我想在matlab中将其转换为数字。问题是它们是双引号,我似乎无法使用str2num来转换它们。

a = {'"15"'; '"16"'; '"17"'; '"30"'; '"50"'}

有没有办法这样做或从数字中删除双引号?谢谢!

1 个答案:

答案 0 :(得分:4)

您需要手动删除双引号符号。您可以使用cellfunanonymous function应用于每个单元格。以下是两种可能的方法:

  1. 匿名函数只需剥离第一个和最后一个字符。如果双引号符号始终位于这些位置,则此方法有效:

    a = {'"15"'; '"16"'; '"17"'; '"30"'; '"50"'};
    result = cellfun(@(x) str2double(x(2:end-1)), a);
    
  2. 如果某些字符串可能不包含双引号符号,或者可能在任意位置包含多个字符串,请使用删除该符号的任何出现的匿名函数

    a = {'15'; '16'; '"17"'; '30"'; '"""50"""'};
    result = cellfun(@(x) str2double(x(x~='"')), a);