How do you multiply the letter "a" by 3?
45 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
a =
'x'
>> a*3
Undefined operator '*' for input arguments of type 'cell'.
The result I want to achieve: 3*x
Réponses (4)
the cyclist
le 1 Sep 2017
Modifié(e) : the cyclist
le 1 Sep 2017
If you have a character array and you want to replicate it, use repmat:
repmat('a',1,3)
the cyclist
le 1 Sep 2017
If you are trying to multiply a symbolic variable, then you should just be able to use mtimes as you have done. But why is your symbolic in a cell array?
0 commentaires
Steven Lord
le 1 Sep 2017
Multiplying a cell array by a number is not defined, regardless of what the cell in the cell array contains. So something like 3*{'a'} will error.
Multiplying a char array by a number is defined, but it will not do what you're trying to do. Since the ASCII value of 'a' is 97 (which you can find using the command double('a')) computing 3*'a' returns 291 (= 3*97).
If you have Symbolic Math Toolbox, define a to be a symbolic variable then multiply that symbolic variable by 3 to do what you're trying to do.
syms a
y = 3*a
You can check if you have Symbolic Math Toolbox installed by looking for it in the output of the ver function.
0 commentaires
Jan
le 1 Sep 2017
Perhaps you do not want a symbolic calculation but a string manipulation.
c = {'a'}
b = sprintf('%d%s', 3, c{1});
0 commentaires
Voir également
Catégories
En savoir plus sur Numbers and Precision 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!