multipying character in array number

1 view (last 30 days)
i want to create a character array for example if a.*[1 1 1 1] we get [a a a a] thank you.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 21 Nov 2016
repmat({'a'} ,1,5)
  1 Comment
best16 programmer
best16 programmer on 21 Nov 2016
thank you. but what if we have a.*[1 -1 1 -1 -1] how can we get [a -a a -a -a]

Sign in to comment.

More Answers (2)

Star Strider
Star Strider on 21 Nov 2016
‘what if we have a.*[1 -1 1 -1 -1] how can we get [a -a a -a -a]’
That requires a loop, but it works:
v = [1 -1 1 -1 -1];
a_vec = [];
for k1 = 1:length(v)
if v(k1) > 0
a_vec = [a_vec ' a '];
elseif v(k1) < 0
a_vec = [a_vec '-a '];
elseif v(k1 == 0)
a_vec = [a_vec ' 0 '];
end
end
a_vec =
a -a a -a -a
  3 Comments
Star Strider
Star Strider on 21 Nov 2016
My pleasure.
Note that it also allows for ‘0’ entries in ‘v’.

Sign in to comment.


Philip Borghesani
Philip Borghesani on 21 Nov 2016
Edited: Philip Borghesani on 21 Nov 2016
Did you really want a character array?
>> syms a
>> b=a.*[1 -1 1 -1 -1]
b =
[ a, -a, a, -a, -a]
To get a character array you can do
>> char(b)
ans =
'matrix([[a, -a, a, -a, -a]])'

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!