为什么以下字符串到数字转换在Matlab中失败?

时间:2011-05-11 02:13:47

标签: matlab

我正在尝试分解日期,并在日,月和年中添加一个数字

date = input('Please enter the date (DD/MM/YYYY):','s')


tokens = regexp(sprintf(date),'/','split')
daymonthyear = str2num(tokens)
test = daymonthyear + 1

3 个答案:

答案 0 :(得分:4)

如错误消息所示,str2num需要字符串,而不是字符串的单元格数组。有两种方法可以解决这个问题。您可以使用str2double,或cellfun结合str2num

解决方案1 ​​

daymonthyear = str2double(tokens)

解决方案2

daymonthyear = cellfun(@str2num,tokens)

答案 1 :(得分:1)

Jonas already addressed您遇到的具体错误,但我认为您可能对使用SSCANF而不是REGEXP的更简单方法感兴趣:

date = input('Please enter the date (DD/MM/YYYY):','s');
daymonthyear = sscanf(date,'%d/%d/%d',[1 3]);

答案 2 :(得分:0)

你不能使用addtodate吗?

i = input('Please enter the date (DD/MM/YYYY):','s')
date = datenum(i, 'dd/mm/yyyy')
date = addtodate(date, 1, 'year')
date = addtodate(date, 1, 'month')
date = addtodate(date, 1, 'day')
tokens = regexp(datestr(date, 'dd/mm/yyyy'),'/','split')