Index exceeds the number of array elements (1)
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Jonas Freiheit
il 9 Set 2020
Commentato: Jonas Freiheit
il 10 Set 2020
%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 Commenti
Risposta accettata
Kojiro Saito
il 9 Set 2020
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 Commenti
Kojiro Saito
il 10 Set 2020
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.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Matrix Indexing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!