Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab中的矩阵索引与除法_Matlab_Gaussian - Fatal编程技术网

Matlab中的矩阵索引与除法

Matlab中的矩阵索引与除法,matlab,gaussian,Matlab,Gaussian,我正在尝试编码高斯消去法,这是我正在使用的一段代码。矩阵已为三角形,但此表达式中存在错误: x(n) = b(n) / A(n, n); 以下是完整的代码: function [x] = gauss(A, b) n = size(A); for k=1 : n-1 for i=k+1 : n m = A(i, k) / A(k, k); for j=1 : n A(i, j) = A(i, j) - m *

我正在尝试编码高斯消去法,这是我正在使用的一段代码。矩阵已为三角形,但此表达式中存在错误:

x(n) = b(n) / A(n, n);
以下是完整的代码:

function [x] = gauss(A, b)
  n = size(A);
  for k=1 : n-1
      for i=k+1 : n
          m = A(i, k) / A(k, k);
          for j=1 : n
              A(i, j) = A(i, j) - m * A(k, j);
          end
          b(i) = b(i) - m * b(k);
      end
  end
  x(n) = b(n) / A(n, n);
  disp(double(b(n)));
  for k=n-1 : -1 : 1
      s=0;
      for i=k+1 : n
          s = s + A(k, i) * x(i);
      end
      x(k) = (b(k) - s) / A(k, k);
  end
  disp(x);
end
谢谢你的帮助。顺便说一句,我是Matlab的新手

编辑:添加更多信息

我这样调用这个函数: A=[632;9-14;1053] b=[12 37 21]

sol = gauss(A, b);
这条线

 n = size(A);
将有一个向量结果,因为
a
是一个矩阵。看来您在等这一行

x(n) = b(n) / A(n, n);
行为类似于标量除法,但使用
n
向量实际上是在尝试对不同维度的矩阵进行除法。根据示例代码检查这些语句的输出

n = size(A);
A(n,n)
b(n)
请注意,您不是在处理标量。如果希望
n
成为等于
a
行数的标量,请尝试替换

n = size(A);


现在
n
应该真正代表
A的行数

A和b的维度是什么?问题现在更新了。:)非常感谢。我发现了我的错误。我通过[n,n]=大小(A)来解决它;
[n n1] = size(A);