What does this error " Undefined operator '*' for input arguments of type 'string' " means?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have this code (part of a script)
for i=1:N
Size = Event_List(1,4);
Start_trans_time_ONU(i) = CurrentTime + (Distances(i) / Prop_speed) + Size * 8/ (C *(10^9));
End_Trans_time_ONU(i) = Start_trans_time_ONU(i) + (Distances(i)/Prop_speed) + Grant_time;
aux = End_Trans_time_ONU(i) + Guard_time;
Trans_ONU = i+1;
Event_List = [Event_List; DepartureONU aux 0 0 i+1];
end
And I get the error "Undefined operator '*' for input arguments of type 'string'" on 3rd line.
Can anyone help me on solving it?
Many thanks in advance.
4 commentaires
Réponse acceptée
Jan
le 6 Fév 2018
Modifié(e) : Jan
le 7 Fév 2018
The error message is clear: In the failing line you try to multiply a string, but this is not meaningful.
You know that the problem occurs in this line:
Start_trans_time_ONU(i) = CurrentTime + (Distances(i) / Prop_speed) + ...
Size * 8 / (C *(10^9));
Then use the debugger to find out, where the problem is: Debugger. Eitehr set a breakpoint in this line or type this in the command window:
dbstop if error
Now run the code until Matlab stops at the named line. You can examine the values of the variables, e.g.:
class(Size)
class(C)
One of them is a variable of class string and a multiplication is meaningless. Convert it to a number.
By the way: 10^9 is an expensive power operation, which is evaluated in each iteration, while 1e9 is a cheap constant.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur String dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!