Sida 1 av 1
Compare i Octave??? Löst!
Postat: 24 december 2024, 11:42:23
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?
/π
Re: Compare i Octave??? Löst!
Postat: 24 december 2024, 11:50:33
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.
/π
Re: Compare i Octave??? Löst!
Postat: 24 december 2024, 12:39:34
av Mickecarlsson
Re: Compare i Octave??? Löst!
Postat: 24 december 2024, 12:51:13
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!

Re: Compare i Octave??? Löst!
Postat: 24 december 2024, 14:07:39
av Mickecarlsson
Såg det nu, är en php-kodare och läste din kod lite slarvigt.
Re: Compare i Octave??? Löst!
Postat: 24 december 2024, 17:06:21
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
/π