Azzera filtri
Azzera filtri

Finding the norm of a matrix using for-loops and conditional statements

3 visualizzazioni (ultimi 30 giorni)
Alright, so I'm having a bit of trouble with an example for MATLAB. I'm trying to find the conditional number of any square matrix, which normally isn't too difficult. However, instead of using the norm function to find the norm of the matrix, I am to use loops and conditional statements. I'm not completely sure where to start.
I know how to find the norm on paper - I take the absolute value of each number of the matrix, then add up the columns. The largest number, then, is the norm of the matrix. How might I translate that over into MATLAB?
EDIT: This is how what I've gotten thus far. The sums make sense, but I don't know how to edit it so that it'll work for any square matrix.
A= [2 3 4; 4 7 6; -11 85 9;];
invA= inv(A);
mn=size(A);
n=length(A);
for i=1:1:n-2
for j=1:1:n-2
sum_1=abs(A(i,1)) + abs(A((i+1),1) + abs(A((i+2),1)))
sum_2=abs(A(i,2)) + abs(A((i+1),2)) + abs(A((i+2),2))
sum_3=abs(A(i,3)) + abs(A((i+1),3)) + abs(A((i+2),3))
end
end
  3 Commenti
Chris
Chris il 24 Nov 2013
I'm supposed to use loops and conditional statements - I can't use max/cond/sum/similar commands.
Matt J
Matt J il 24 Nov 2013
Modificato: Matt J il 24 Nov 2013
I know how to find the norm on paper - I take the absolute value of each number of the matrix, then add up the columns.
That is the L1 norm, not the more standard L2 norm.

Accedi per commentare.

Risposta accettata

Matt J
Matt J il 24 Nov 2013
Modificato: Matt J il 24 Nov 2013
Hint:
B=abs(A);
accum=0;
for i=1:size(B,1)
accum=accum+B(i,:);
end

Più risposte (1)

Chris
Chris il 25 Nov 2013
I greatly appreciate that little hint you gave me - that little nudge in the right direction was just what I needed.

Categorie

Scopri di più su MATLAB 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!

Translated by