12 svar
477 visningar
Larz96 20 – Fd. Medlem
Postad: 19 dec 2020 13:48

Hur plottar jag några specifika punkter på en graf?

Hej, jag undrar hur man ritar en några specifika punkter på en graf.

Jag har testat kommandot plot men det fungerar bara för en punkt.

 

Tacksam för svar!

SeriousCephalopod 2692
Postad: 19 dec 2020 14:00 Redigerad: 19 dec 2020 14:00

Man använder bara plot(x,y) men har listor istället för enstaka värden  x,y

så exempelvis

x = [1,2,3,4]

y = [2,5,6,8]

för en graf med 4 punkter. 

Larz96 20 – Fd. Medlem
Postad: 19 dec 2020 14:02
SeriousCephalopod skrev:

Man använder bara plot(x,y) men har listor istället för enstaka värden  x,y

så exempelvis

x = [1,2,3,4]

y = [2,5,6,8]

för en graf med 4 punkter. 

Hej, de kanske var dåligt formulerat av mig men jag har alltså redan en graf ritat, det jag vill göra är att rita in några punkter på grafen.  Då antar jag väl att man använder kommandot hold on ?

SeriousCephalopod 2692
Postad: 19 dec 2020 14:04

'hold on' låter relevant, ja om du vill köra flera plot-kommandon i en och samma graf

Men du får nog återge kod och bild på output om du vill ha 'bra' vägledning. 

Larz96 20 – Fd. Medlem
Postad: 19 dec 2020 14:08
SeriousCephalopod skrev:

'hold on' låter relevant, ja om du vill köra flera plot-kommandon i en och samma graf

Men du får nog återge kod och bild på output om du vill ha 'bra' vägledning. 

%Skapa A matris
A=[12 8 1; 10 12 1; -1 10 1; 2 -2 1];
%Skapa b matris
b=[52; 61; 26; 2];
%hitta c
c=A\b

%skapar en vektor v med 101 element som startar i 0 och stegar upp till 2π
%med steg 2π/100.
v=0:2*pi/100:2*pi
%plottar en cirkel med radien 4.1670 och centrum (2.4825,2.7174)
x=4.1670*cos(v)+2.4825;
y=4.1670*sin(v)+2.7179;
plot(x,y, '--')

 

SeriousCephalopod 2692
Postad: 19 dec 2020 14:20

Ser rimligt ut. Hold on och fler plot-kommandon längst ner borde fungera för ditt syfte.

Kan även rekommendera att lägga in

axis equal

för att graderingen på axlarna ska bli lika så att det också ser ut som en cirkel. 

Larz96 20 – Fd. Medlem
Postad: 19 dec 2020 14:32 Redigerad: 19 dec 2020 14:54
SeriousCephalopod skrev:

Ser rimligt ut. Hold on och fler plot-kommandon längst ner borde fungera för ditt syfte.

Kan även rekommendera att lägga in

axis equal

för att graderingen på axlarna ska bli lika så att det också ser ut som en cirkel. 

-

SeriousCephalopod 2692
Postad: 19 dec 2020 14:38

Dina sista fyra rader är konstigt formulerade. 

x(6), y(4) är tillexempel ju inte punkter på cirkeln. (???). Så dessa 'punkter' har inget med cirkeln att göra. 

Men felet i koden är att de sista två raderna inte är läsbara i matlab utan kommer ge felmeddelanden. 

plot(x(-1),y(5), '*')
plot(x(1), y(-1),'*')    

Felet i koden är att du inte kan ge negativa argument till listor så som du gör i de två sista raderna x(-1) och y(-1). Du borde explicit få felmedelanden i output som säger att detta är fel. Negativa index kan man ha i många programmeringsspråk men inte i matlab. 

Larz96 20 – Fd. Medlem
Postad: 19 dec 2020 14:46 Redigerad: 19 dec 2020 14:48
SeriousCephalopod skrev:

Dina sista fyra rader är konstigt formulerade. 

x(6), y(4) är tillexempel ju inte punkter på cirkeln. (???). Så dessa 'punkter' har inget med cirkeln att göra. 

Men felet i koden är att de sista två raderna inte är läsbara i matlab utan kommer ge felmeddelanden. 

plot(x(-1),y(5), '*')
plot(x(1), y(-1),'*')    

Felet i koden är att du inte kan ge negativa argument till listor så som du gör i de två sista raderna x(-1) och y(-1). Du borde explicit få felmedelanden i output som säger att detta är fel. Negativa index kan man ha i många programmeringsspråk men inte i matlab. 

 

.

Larz96 20 – Fd. Medlem
Postad: 19 dec 2020 14:47
Larz96 skrev:
SeriousCephalopod skrev:

Dina sista fyra rader är konstigt formulerade. 

x(6), y(4) är tillexempel ju inte punkter på cirkeln. (???). Så dessa 'punkter' har inget med cirkeln att göra. 

Men felet i koden är att de sista två raderna inte är läsbara i matlab utan kommer ge felmeddelanden. 

plot(x(-1),y(5), '*')
plot(x(1), y(-1),'*')    

Felet i koden är att du inte kan ge negativa argument till listor så som du gör i de två sista raderna x(-1) och y(-1). Du borde explicit få felmedelanden i output som säger att detta är fel. Negativa index kan man ha i många programmeringsspråk men inte i matlab. 

 

Uppgiften går ut på att approximera en cirkel som dessa punkter ska ligga på, så jag ska egentligen bara plotta dessa punkter i grafen och har alltså inget att göra med cirkel jag redan har ritat in och göra, jag ber om ursäkt om jag inte var tydlig med det från början.  

Ok, så man kan alltså inte skriva in minus tal som argument på matlab? Hur går man tillväga isåfall då?

SeriousCephalopod 2692
Postad: 19 dec 2020 14:49 Redigerad: 19 dec 2020 14:49

Menar du punkterna (6,4), (-1, 5), osv?

Vill du plotta ut dem ska du inte ha x(6), y(4).

Vad x(6) betyder är elementet med index 6 (det 7:e elementet) i listan x och är inte vad du vill ha.

Vill du plotta ut den punkten skriver du bara

plot(6,4,'*')

rakt av.

Du ska inte ha x och y i uttrycken.

Larz96 20 – Fd. Medlem
Postad: 19 dec 2020 14:53
SeriousCephalopod skrev:

Menar du punkterna (6,4), (-1, 5), osv?

Vill du plotta ut dem ska du inte ha x(6), y(4).

Vad x(6) betyder är elementet med index 6 (det 7:e elementet) i listan x och är inte vad du vill ha.

Vill du plotta ut den punkten skriver du bara

plot(6,4,'*')

rakt av.

Du ska inte ha x och y i uttrycken.

Yes, nu löste det sig!  Tack så mycket för din hjälp! :)

Larz96 20 – Fd. Medlem
Postad: 19 dec 2020 14:54
Larz96 skrev:
SeriousCephalopod skrev:

'hold on' låter relevant, ja om du vill köra flera plot-kommandon i en och samma graf

Men du får nog återge kod och bild på output om du vill ha 'bra' vägledning. 

.

Svara Avbryt
Close