在matlab中将矩阵解析成单个字符串

时间:2014-12-03 11:20:06

标签: string matlab parsing matrix integer

我有一个整数矩阵,我想解析成一个字符串。我试过mat2str,num2str等,但它总是把空格放在矩阵单元格之间。

假设我有矩阵:

2 4 5 1
4 9 2 0
1 9 5 3

我想要的结果是:

ans = '245149201953'

我确信它不会那么难,可能我错过了一些非常明显的东西,但我只是被困在这里。

3 个答案:

答案 0 :(得分:1)

将矩阵表示为M。一些可能的方法是:

  1. num2str与格式说明符一起使用以避免使用空格:

    result = num2str(reshape(M.',1,[]), '%i');
    

    如果需要,请将格式说明符'%i'更改为其他内容。

  2. 使用mat2str并使用regexprep删除不需要的字符:

    result = regexprep(mat2str(M),'(\[|\]|\;|\s)','')
    
  3. 如果矩阵仅包含一位数:将每个数字转换为ASCII码,然后转换为char

    result = char(reshape(M.',1,[])+'0');
    

答案 1 :(得分:0)

我会用`sprintf'。我认为它会逐列解析参数,但这可以很容易地解决,例如使用循环或转置。 MATLAB实际上是按列进行大部分操作,因此如果您有选择,我建议将其考虑在内。

离)

a=[1,2,3;4,5,6;7,8,9];
sprintf('%.0f',a) % %.0f for float, displayed with no decimals, use %d for int

答案 2 :(得分:0)

您可以尝试以数学方式进行操作:

ans=sum(((ones(1,numel(A))*10).^(numel(A):0)).*reshape(A',[],1)')