我有一个数组的单元格数组(字符串格式),我想在matlab中将其转换为数字。问题是它们是双引号,我似乎无法使用str2num来转换它们。
a = {'"15"'; '"16"'; '"17"'; '"30"'; '"50"'}
有没有办法这样做或从数字中删除双引号?谢谢!
答案 0 :(得分:4)
您需要手动删除双引号符号。您可以使用cellfun
将anonymous function应用于每个单元格。以下是两种可能的方法:
匿名函数只需剥离第一个和最后一个字符。如果双引号符号始终位于这些位置,则此方法有效:
a = {'"15"'; '"16"'; '"17"'; '"30"'; '"50"'};
result = cellfun(@(x) str2double(x(2:end-1)), a);
如果某些字符串可能不包含双引号符号,或者可能在任意位置包含多个字符串,请使用删除该符号的任何出现的匿名函数:
a = {'15'; '16'; '"17"'; '30"'; '"""50"""'};
result = cellfun(@(x) str2double(x(x~='"')), a);