How can I write in excel multiple columns as vectors?
Show older comments
First of all, thanks for reading this. Well, I have a gui that writes columns in a new excel spreadsheet concatenating them in a matrix, but I don't know how many columns will the user write in that excel file. I'm using xlswrite.
The sintax that I think I could use for concatenation is:
Y=[X1,X2,X3,...,Xn]
I hope I had been explicit with my question. Greetings.
Answers (2)
Sara
on 8 Jul 2014
You can create dynamically the range to write to. For instance, starting from A1:
xlswrite('myfile.xlsx',Y, ['A1:',char(64+size(Y,2)),':',num2str(size(Y,1))])
Image Analyst
on 8 Jul 2014
Edited: Image Analyst
on 8 Jul 2014
Simply create your Y any way you'd like, such as you did. Then call xlswrite
xlswrite(filename, Y, 'A1');
'A1' is the upper left cell in Excel where you want to put the upper left cell of your array - you can make it whatever/wherever you want. It doesn't care how many rows or columns are in Y - it will put them all in there. You don't need to do what Sara did, and you don't need to specify the lower right cell unless you want to export just a portion of Y and not the full array.
9 Comments
Sara
on 8 Jul 2014
I didn't know you could just specify the upper corner, that's useful to know.
Edgar
on 9 Jul 2014
Sara
on 9 Jul 2014
I don't understand, if those vector are in Y, what do you need?
Edgar
on 9 Jul 2014
Sara
on 9 Jul 2014
Let's start over. How are those arrays created by the user? How do you get them? Is that thru a GUI, an input excel file, command window,...?
Image Analyst
on 9 Jul 2014
Do you have the Xn or not? Do you have the Y or not? If you just want to append some variable number, then use
Y = [Y, thisX]; % Tack on thisX.
For example if you want to make Y the columns between 4 and 9 of some array:
for col = 4 : 9
thisX = array2d(:, col);
if col == 4
Y = thisX; % First column so initialize - nothing to append onto yet.
else
Y = [Y, thisX]; % Append/stitch on thisX to existing Y.
end
end
Edgar
on 9 Jul 2014
Sara
on 9 Jul 2014
Once the new variable is created, you can concatenate that directly to Y, which will be saved as a field of handles as handles.Y and print it out when the user leaves the GUI. You'll need to create handles.Y = [] in the gui opening function and keep concatenating all the variables the user creates. Is that clear, is that what you want?
Edgar
on 11 Jul 2014
Categories
Find more on Spreadsheets in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!