How to save vector columnwise in Excel file
57 ビュー (過去 30 日間)
古いコメントを表示
Suppose I am generating a column vector randomly 30 times and each time I wish to save it in the Excel column. Can anybody tell me how to do it.
for i=1:30
vec = randn(5,1);
%%Save vec in excel file
end
2 件のコメント
Jan
2017 年 6 月 22 日
What is "the Excel column"? Do you want to save all vectors in the same column, or each vector in its own column?
回答 (2 件)
Jan
2017 年 6 月 22 日
編集済み: Jan
2017 年 6 月 22 日
ExcelFile = fullfile(tempdir, 'YourFile.xlsx');
for i = 1:30
vec = randn(5,1);
colName = xlsColNum2Str(i);
xlswrite(ExcelFile, vec, sprinft('%s1:%s%d', colName, colName, numel(vec)));
end
It might be easier or faster, to create a matrix and save it as a block:
mat = randn(5, 30);
Range = sprinft('%s1:%s%d', xlsColNum2Str(1), xlsColNum2Str(5), numel(vec));
xlswrite(ExcelFile, mat, Range);
xlswrite can guess the range, if the sheet was specified:
mat = randn(5, 30);
xlswrite(ExcelFile, mat, 1, 'B2');
0 件のコメント
Nut
2017 年 6 月 22 日
Hi,
this code could be valid for you:
for i=1:30
vec = randn(5,1);
% Syntax: xlswrite(filename,A,sheet,xlRange)
xlswrite('Workbook.xlsx',vec,1,[letters num2str(1)])
end
But you need "letters": it is a string corresponding to the column where you want to write the variable "vec".
If to save in Excel for each iteration is not a constraint, you can avoid this. First, you should generate the whole matrix to be exported in Excel, and finally write it into the workbook. I think this way is also more efficient.
mtx = zeros(5,30);
for i=1:30
mtx(:,i) = randn(5,1);
% Syntax: xlswrite(filename,A)
xlswrite('Workbook.xlsx',mtx)
end
2 件のコメント
Nut
2017 年 6 月 23 日
Ok. So, the issue is how to generate the string corresponding to the name of the Excel column. I use a my own code to do this, but you can refer to the answer by Jan Simon: it calls a ready-to-use function from Matlab Exchange, so it should be a better way.
参考
カテゴリ
Help Center および File Exchange で Spreadsheets についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!