# How to store string into an array?

324 views (last 30 days)
Minu on 4 Jun 2013
Hi
How to save string into array.I have string of characters and want to save in an array.
y(1)='0D05';
y(2)='0D06';
y(3)='0D10; and so on...How to solve this

Chandrasekhar on 4 Jun 2013
try this Minu y= {'0D05','0D06','0D10'};
if u want to update the array during run time
y{i} = {str};
Jan on 4 Jun 2013
@Minu: Please care for always posting a complete copy of the message accompanied by the relevant part of the corresponding code. Without seeing the code, we would have to guess suggestions for improvements. Thanks.

Daniel Shub on 4 Jun 2013
You cannot access a string with y(1) easily. The problem is that your data is a character array and not a string array. This means that the notation y(1) is asking for a single element of a character array, which is a single character, but you want a string.
Assuming you are starting with some data that looks like
x = char(randi([1, 26]+64, 1, 4*10))
You can rearrange it to have the shape you want by putting 4 characters on a row.
y = reshape(x, [], 4);
You can then get a row with
y(1, :)
If you do not want the trailing colon, you could use a cell array
z = mat2cell(y, ones(10, 1), 4);
You can then get a row with
z{1}
If neither of these suffice you can use the OOP system to define your own string class and then you can use y(1) to get a single element of a string object which would be a character array.

Azzi Abdelmalek on 4 Jun 2013
Edited: Azzi Abdelmalek on 4 Jun 2013
y=char('0D05','0D06','0D10');
%or
y=cellstr(char('0D05','0D06','0D10'));
Jan on 4 Jun 2013
In the first case, char can be omitted and replaced by square brackets. In the second case char can be omitted without any replacement.