Index exceeds the number of array elements (1)
1 次查看(过去 30 天)
显示 更早的评论
%When I try to perform a row interchange for 'b' vector It tells me it exceeds the no of array elements. This is an attempt to perform partial pivoting for matrix A and vector b separately.
Thanks
A = [1 2 3;4 2 -1; 3 2 3];
b = [1; 3; 2];
k = 1;
A = pivoting(A,k)
function [A, b, flag] = pivoting(A, b, k)
n = size(A,1);
flag = 0;
for k=1:n-1
[big, i]=max(abs(A(k:n,k)))
ipr=i+k-1
if ipr~=k
A([k,ipr],:)=A([ipr,k],:)
b([k,ipr])=b([ipr,k])
end
end
end
0 个评论
采纳的回答
Kojiro Saito
2020-9-9
It's because you're trying to manipulate b in line,
b([k,ipr])=b([ipr,k])
but, you're inputting as follows.
k = 1;
A = pivoting(A,k)
so, in function pivoting, b (second input variable) is scalar (1).
You just need to input three variables.
% A = pivoting(A,k)
A = pivoting(A,b,k)
9 个评论
Kojiro Saito
2020-9-10
It's not possible only changing the bold text code because the funtion pivoting requires three inputs, so you need to modify input variables so that it allows two inputs.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!