0

假设我有

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

a = 
   i=0

A = zeros(2);
B = num2str(A)

B = 
   0 0
   0 0

i=0被认为是一个1x3矩阵:[ i, =, 0]。现在如何将其转换为一个元素以便我可以替换B(1,1)i=0?我想得到

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

我知道我们可以用另一种方式格式化输出,但不能循环。我想使用循环。

4

1 回答 1

2

采取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 double] [5x1 double] [5x1 double] [5x1 double] [5x1 double]
Z{2,ii}矩阵的ii第 - 列 在哪里X

于 2012-12-25T08:09:42.257 回答