multipying character in array number
Show older comments
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
More Answers (2)
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
best16 programmer
on 21 Nov 2016
Edited: best16 programmer
on 21 Nov 2016
Star Strider
on 21 Nov 2016
My pleasure.
Note that it also allows for ‘0’ entries in ‘v’.
James Tursa
on 21 Nov 2016
To generate a random vector with the values either +1 or -1, see this link:
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]])'
Categories
Find more on Logical in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!