Matlab:将具有双值的单元格转换为字符串
我需要一个将Matlab:将具有双值的单元格转换为字符串,matlab,Matlab,我需要一个将a={1 2 3}转换为a={'1''2''3'}的命令。换句话说,我希望将输入A={1 2 3}转换为{1''2''3'}好的,您可以使用如下内容: B = cellfun(@(x) num2str(x), A, 'uniformoutput', false); 但我肯定我错过了一个更简单的方法。好吧,你可以用这样的方法: B = cellfun(@(x) num2str(x), A, 'uniformoutput', false); 但我确信我缺少了一种更简单的方法。这里
a={1 2 3}
转换为a={'1''2''3'}
的命令。换句话说,我希望将输入A={1 2 3}
转换为{1''2''3'}
好的,您可以使用如下内容:
B = cellfun(@(x) num2str(x), A, 'uniformoutput', false);
但我肯定我错过了一个更简单的方法。好吧,你可以用这样的方法:
B = cellfun(@(x) num2str(x), A, 'uniformoutput', false);
但我确信我缺少了一种更简单的方法。这里有一种替代方法,使用(未记录的帮助函数) 输出:
out =
'1' '2' '3'
out =
'1.000' '2.000' '3.000'
虽然%d
表示整数,但可以使用%.4f
(其中.4表示小数点后的小数位数)表示浮点数
例如,
out = sprintfc('%.3f',cell2mat(A))
输出:
out =
'1' '2' '3'
out =
'1.000' '2.000' '3.000'
下面是一个使用(未记录的助手函数)的替代方法 输出:
out =
'1' '2' '3'
out =
'1.000' '2.000' '3.000'
虽然%d
表示整数,但可以使用%.4f
(其中.4表示小数点后的小数位数)表示浮点数
例如,
out = sprintfc('%.3f',cell2mat(A))
输出:
out =
'1' '2' '3'
out =
'1.000' '2.000' '3.000'
我不认为有更简单的方法。。。我也是这么想的。它适用于日期形式值吗?@SauloCarvalho的确,假设A是一个日期时间作为数字的单元格数组,比如你从'now'函数中得到的,那么你可以用'datestr'替换'num2str',这就行了。我认为没有更简单的方法。。。我也是这么想的。它是否适用于日期形式的值?@SauloCarvalho的确,假设A是一个日期时间作为数字的单元格数组,比如你从'now'函数中得到的,那么你可以用'datestr'替换'num2str',这样就行了。