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]