In questi casi, la cosa più semplice da fare è ... provare e ... vedere cosa succede.
Ad ogni modo, in realtà puoi scrivere in MatLab l'espressione così come è:
b=3*(a>0)
MatLab valuta l'espressione "a>0" e ritorna il valore ti tipo "logical" 1 se la condizione è verificata, 0 in caso contrario.
Successivamente il valore "logical" viene convertito implicitamente in "double" per poter effettuare la moltiplicazione
Di conseguenza, "b" assumerà il valore "3" (double) quando è verificata la condizione "a > 0" perchè sarà il risultato di "3 * 1" ed assumerà il valore "0" quando la condizione "a > 0" non sarà verificata (quando quindi sarà "a <= 0", in quanto sarà il risultato della moltiplicazione "3 * 0".
Tieni presente che, in generale, se, in casi come questi la variabile "a" non è un intero, è sconsigliato testarne il valore rispetto allo "0" in quanto, per effetto della rappresentazione "floating point" dei numeri reali, non è garantito che in espressioni come quelle che seguono
a = 0.3
b = 0.1*3
a == b
la condizione "a == b" risulti vera.
In questi casi è sempre meglio confrontare i valori di tipo "real" con delle "soglie":
k=1e-06
a = 0.3
b = 0.1*3
abs(a - b) < k
dove "k" rappresenta un valore, da te definito (in questo caso, ad esempio "1e-06") sufficientemente "piccolo", rispetto ai calcoli che deve eseguire il tuo programma, affinchè i valori di "a" e "b" siano considerabili "uguali" (... a meno del valore della soglia, appunto, valore che, ai fini del calcolo è trascurabile).
Se invece vuoi impostare l'espressione con un blocco "if - else", per come lo hai scritto, devi invertire il segno della disuguaglianza
if(a<=0)
b=0;
else
b=3
end
In alternativa, puoi scrivere:
if(a>0)
b=3;
else
b=0
end