0

在 matlab 中,我们通常使用fprintf命令添加标题。

当表的大小取决于输入并且超出某个范围(超过能够在命令窗口中显示的列的总数)时,这是一个问题。

发生这种情况时,我们之前使用fprintf命令指定的标头将与当前输出数据不兼容。

我想知道在某种迭代过程中是否有一种方法可以将字符串添加到矩阵的第一行。我几乎没有尝试过,但仍然找不到解决此问题的正确方法。

或者实际上不能为此目的在matlab中完成。

例如

clear;clc
A = [2 8 3 1;0 2 -1 4;7 -2 1 2;-1 0 5 2]
B = [-2;4;3;5]
Es = 1e-5


n = length(B);
x = zeros(n,1);
Ea = ones(n,1);
iter = 0;

while max(Ea) >= Es
    if iter <= 30
        iter = iter + 1;
        x_old = x;
        for i = 1:n
           j = 1:n;
           j(i) = [];
            x_cal = x;
            x_cal(i) = [];
            x(i) = (B(i) - sum(A(i,j) * x_cal)) / A(i,i);
        end
    else
        break
    end

    x_ans(:,iter) = x;
    Ea(:,iter) =abs(( x - x_old) ./ x);

    end

result = [1:iter; x_ans; Ea]'

对于上面的编码..我如何为第一列添加标题,如迭代,x1...x2...x3..xn 为 n第 列,错误 x1..error x2..error xn 为另一个 n 列。我想让这个标题可以根据输入矩阵自动生成

4

1 回答 1

0

如果表格的大小取决于输入,请使用元胞数组,使用 c = cell(...)。在每次迭代中,只需调用 c{i,j} 而不是 c[i,j]。

于 2013-04-10T06:28:06.283 回答