String MATLAB:将字符串组合转换为一个字符串

String MATLAB:将字符串组合转换为一个字符串,string,matlab,matrix,element,String,Matlab,Matrix,Element,假设我有 a = [ 'i=' num2str(0)] a = i=0 及 此i=0被视为1x3矩阵:[i,=,0]。现在我如何将其转换为一个元素,以便用I=0替换B(1,1)?我想去 B = i=0 0 0 0 (这就是我将A转换为字符串的原因。) 我不断地得到这个错误: Assignment has more non-singleton rhs dimensions than non-singleton 下标 我怀疑这是由于a的维度造成的 我尝试了st

假设我有

a = [ 'i=' num2str(0)]

a = 
   i=0

i=0
被视为
1x3
矩阵:
[i,=,0]
。现在我如何将其转换为一个元素,以便用
I=0
替换
B(1,1)
?我想去

B = 

 i=0    0
   0    0
(这就是我将
A
转换为字符串的原因。)

我不断地得到这个错误:

Assignment has more non-singleton rhs dimensions than non-singleton
下标

我怀疑这是由于
a
的维度造成的

我尝试了strcat(a),以及其他一些方法

编辑: 它背后的动机是我在执行循环时尝试将标签放入矩阵中

这是我代码的最后一部分:

n5 = length(X(1, :));
n6 = length(X(:, 1)) + 1;

Y = zeros(n6, n5);
Y(2:n6, :) = X;
Z = num2str(Y, 4);
for i = 0:K
a = ['i=' num2str(i)];
Z(1,i+1) = a;
end

X = Z

end
我希望输出显示:

   i=0      i=1    ...     i=K

1.0022   1.0000    ...  1.0000
2.0081   2.0000    ...  2.0000
4.0011   4.0000    ...  4.0000
3.9811   4.0000    ...  4.0000
我知道我们可以用另一种方式格式化输出,但不能循环。我想使用循环。

取2: 我发现很难找到一种方法将字符串(
I=0
..)和数字存储在矩阵中。我建议使用单元阵列

sz = size( X );
Z(2,:) = mat2cell( X, sz(1), ones(1,sz(2)) ); % convert each column of X into cell
Z(1,:) = arrayfun( @(x) sprintf('i=%d',x), 0:(sz(2)-1), 'uni', false );
生成的单元数组
Z
的大小为
2x(n5)
,如下所示:

“i=0”“i=1”“i=2”“i=3”“i=4”
[5x1双精度][5x1双精度][5x1双精度][5x1双精度][5x1双精度]
其中
Z{2,ii}
是矩阵
X
ii
-第列

sz = size( X );
Z(2,:) = mat2cell( X, sz(1), ones(1,sz(2)) ); % convert each column of X into cell
Z(1,:) = arrayfun( @(x) sprintf('i=%d',x), 0:(sz(2)-1), 'uni', false );
'i=0' 'i=1' 'i=2' 'i=3' 'i=4'
[5x1 double] [5x1 double] [5x1 double] [5x1 double] [5x1 double]