1 svar
74 visningar
I am Me är nöjd med hjälpen
I am Me 679
Postad: 27 okt 2022 20:14 Redigerad: 27 okt 2022 20:18

Matris

Uppgift: 

Du har matrisen: 

A=[2 6 3 8 2; 6 6 7 7 3; 1 7 4 2 9; 0 4 5 6 3; 3 8 4 7 69]
Ta fram all rader i A där 4:e kolumnen är mindre än 7 och skapa en matris B som består av dessa raders värden minus 1.

 

A =

2    6    3    8     2
6    6    7    7    3
1    7    4    2    9
0    4     5   6     3
3    8     4   7     69

Lösning: 

index = (A(:,4)<7); B=A(index, :) - 1 


krångligt svar. Jag trodde om man lägger in index = (A(:,4)<7) i matrisen A så får man värde på de platserna som logiska arrayen visar. Alltså jag trodde att A(index) skulle ge 2 och 6 men jag hade fel! den ger 1 och 0  som är värdet av rad tre och fyra i kolumn 1. 

Matsmats 567 – Livehjälpare
Postad: 27 okt 2022 20:43 Redigerad: 27 okt 2022 20:44

Du kämpar på!

Nej, kolumn 1 är inte med.

Titta först på A(:,4) Detta plockar ut kolumn 4 ur A.

Nästa steg: (A:,4) < 7 ger dig en logisk kolumnvektor med 4 element där det sitter 1:or i de rader där värdet i kolumn 4 är <7:

>> A(:,4)<7
ans =

0
0
1
1
0

Nu har vi markerat raderna 3 och 4 med 1:or och kallar den logiska vektorn 'index'

Sista steget: B=A(index,:)-1 plockar ut de rader i A där 'index' är 1, dvs. där elementen i kolumn 4 är mindre än 7 och drar bort 1. Vi drar alltså bort 1 från rad 3 och 4.

Svara Avbryt
Close