Var och när använder man [], () , ; och , samt : i matlab ?
Utgå från matrisen
A = [4 3 5 7 4 1 5; 2 3 5 3 7 5 4; 2 4 3 5 7 8 6; 1 5 8 5 3 6 9; 2 4 2 7 6 8 2; 1 4 2 7 9 6 4; 2 4 6 7 8 5 1]
Hur skriver du för att få en ny matris B som innehåller kolumnerna 3, 4 och 1 från A, i den ordningen? Alltså, vad ska svar1 och svar2 vara i nedanstående uttryck? B = A(svar1, svar2)
Hur skriver du för att skapa en ny matris C som innehåller alla rader i A där värdet i kolumn 2 är större än värdet i kolumn 7? Alltså, vad ska svar3 och svar4 vara i nedanstående uttryck? C = A(svar3, svar4)
A =
4 3 5 7 4 1 5
2 3 5 3 7 5 4
2 4 3 5 7 8 6
1 5 8 5 3 6 9
2 4 2 7 6 8 2
1 4 2 7 9 6 4
2 4 6 7 8 5 1
Min lösning:
Det här är ett exempelprov och jag fick fel på alla uppgifter =((((
För första frågan B = A(svar1, svar2) svaret blir B= A(:, [3 4 1]) . DEt står att man kan även skriva det som [ 341] , [3,4,1] , [3;4; 1] varför dessa är rätt?? det ger en vektor av raderna, [3,4,1] ger en rad vektor och [3;4; 1] ger en matrix av kolumnerna. Varför använder de hakparentes här??:(
Svaret för andra frågan är C= A( A(:, 2) > A(:, 7), (1:7)).
jag skrev den här A(:, 2) > A(:, 7) i matlab och fick en logisk array. Såg att värdet i rad 5 och 7 i kolumn två var större än värdet i kolumn sju. Därför skrev jag C= A((5,:), (7,:)). Matlab säger att det är fel användning av parantes. Varför min svar är fel??
I am Me skrev:Utgå från matrisen
A = [4 3 5 7 4 1 5; 2 3 5 3 7 5 4; 2 4 3 5 7 8 6; 1 5 8 5 3 6 9; 2 4 2 7 6 8 2; 1 4 2 7 9 6 4; 2 4 6 7 8 5 1]
Hur skriver du för att få en ny matris B som innehåller kolumnerna 3, 4 och 1 från A, i den ordningen? Alltså, vad ska svar1 och svar2 vara i nedanstående uttryck? B = A(svar1, svar2)
Hur skriver du för att skapa en ny matris C som innehåller alla rader i A där värdet i kolumn 2 är större än värdet i kolumn 7? Alltså, vad ska svar3 och svar4 vara i nedanstående uttryck? C = A(svar3, svar4)
A =
4 3 5 7 4 1 5
2 3 5 3 7 5 4
2 4 3 5 7 8 6
1 5 8 5 3 6 9
2 4 2 7 6 8 2
1 4 2 7 9 6 4
2 4 6 7 8 5 1Min lösning:
Det här är ett exempelprov och jag fick fel på alla uppgifter =((((
För första frågan B = A(svar1, svar2) svaret blir B= A(:, [3 4 1]) . DEt står att man kan även skriva det som [ 341] , [3,4,1] , [3;4; 1] varför dessa är rätt?? det ger en vektor av raderna, [3,4,1] ger en rad vektor och [3;4; 1] ger en matrix av kolumnerna. Varför använder de hakparentes här??:(
Svaret för andra frågan är C= A( A(:, 2) > A(:, 7), (1:7)).
jag skrev den här A(:, 2) > A(:, 7) i matlab och fick en logisk array. Såg att värdet i rad 5 och 7 i kolumn två var större än värdet i kolumn sju. Därför skrev jag C= A((5,:), (7,:)). Matlab säger att det är fel användning av parantes. Varför min svar är fel??
Hittade att någon i en av mina tidigare tråd hade skrivit skillnaden mellan [],() och : , det löste sig och jag kan inte ändra den här tråden.
Men är [3 4 1] en rad eller kolumn vektorn som man skickade in i B= A(:, [3 4 1]) ??
[3 4 1] är en radvektor. Dock får du samma resultat med B=A(:,[3 4 1]'), dvs. med en kolumnvektor. Jag tror MATLAB vid indexering bara bryr sig om ordningen indexen kommer i, inte huruvida det är en rad- eller kolumnvektor.
Tack tack! jag tror nu har jag förstått principen.