Compare i Octave??? Löst!

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
pi314
Inlägg: 7850
Blev medlem: 23 oktober 2021, 19:22:37
Ort: Stockholm

Compare i Octave??? Löst!

Inlägg av pi314 »

Enligt "manualen".
x > y
True if x is greater than y.
https://docs.octave.org/latest/Comparis ... tml#XREFgt

Min kod (lite förenklad).

Kod: Markera allt

hhnow = 11;
mmnow = 37;

tomorrowavail = false;
if hhnow > 14 tomorrowavail = true; endif
if hhnow == 13 && mmnow>30 tomorrowavail = true; endif
Första if-satsen sätter tomorrowavail till true.

Varför?

Användarvisningsbild
pi314
Inlägg: 7850
Blev medlem: 23 oktober 2021, 19:22:37
Ort: Stockholm

Re: Compare i Octave??? Löst!

Inlägg av pi314 »

Ena variabeln var en sträng och den andra var ett tal.

Jag ändrade.

Kod: Markera allt

hhnow = strftime("%H", localtime (time ()));
mmnow = strftime("%M", localtime (time ()));
till

Kod: Markera allt

hhnow = str2num(strftime("%H", localtime (time ())));
mmnow = str2num(strftime("%M", localtime (time ())));
Sedan fungerade det.

Användarvisningsbild
Mickecarlsson
EF Sponsor
Inlägg: 4809
Blev medlem: 15 april 2017, 18:06:15
Ort: Malmö
Kontakt:

Re: Compare i Octave??? Löst!

Inlägg av Mickecarlsson »

Borde inte

Kod: Markera allt

if hhnow > 14 tomorrowavail = true; endif
vara

Kod: Markera allt

if hhnow > 14 tomorrowavail == true; endif
Användarvisningsbild
pi314
Inlägg: 7850
Blev medlem: 23 oktober 2021, 19:22:37
Ort: Stockholm

Re: Compare i Octave??? Löst!

Inlägg av pi314 »

Mickecarlsson:

Jag tror inte det.

= är tilldelningsoperatorn.
The ' = ' sign is called an assignment operator.
https://docs.octave.org/latest/Assignment-Ops.html

== är en jämförelseoperator.
Comparison Operators
https://docs.octave.org/v4.2.0/Comparis ... arison-Ops

När jämförelsevillkoret är uppfyllt, så vill jag tilldela värdet true till variabeln tomorrowavail.



PS: Det fungerar nu! :tumupp:
Användarvisningsbild
Mickecarlsson
EF Sponsor
Inlägg: 4809
Blev medlem: 15 april 2017, 18:06:15
Ort: Malmö
Kontakt:

Re: Compare i Octave??? Löst!

Inlägg av Mickecarlsson »

Såg det nu, är en php-kodare och läste din kod lite slarvigt.
Användarvisningsbild
pi314
Inlägg: 7850
Blev medlem: 23 oktober 2021, 19:22:37
Ort: Stockholm

Re: Compare i Octave??? Löst!

Inlägg av pi314 »

Hur vet man om man har en sträng eller ett tal?
Jag har nog gjort misstaget ovan tidigare.

Funktionen class
Om något, som i mitt fall ovan, ser ut som ett tal, men är en sträng, så kan få veta vad det är. Med hjälp av funktionen class.

Kod: Markera allt

>> hhnow = strftime("%H", localtime (time ()));
>> class(hhnow)
ans = char

>> hhnow = str2num(strftime("%H", localtime (time ())));
>> class(hhnow)
ans = double

Skriv svar