how to write to one decimal point from matlab to excel
9 ビュー (過去 30 日間)
古いコメントを表示
Hello Guys,
I need to write the values to excel from matlab script with only one decimal point.
This is the code I used for exporting data to excel:
final_result = {Power;Power1;Power2;Power_percent};
if datasave==1
UpdateSpreadsheet(final,Spreadsheet_name,Tab_name)
end
function UpdateSpreadsheet(final, Spreadsheet_name, Tab_name)
ReadData = xlsread(Spreadsheet_name,Tab_name);
[Rows,Columns]=size(ReadData);
n= Columns+2;
xlsb = mod(n-1,26)+1 ;
xmsb = fix((n-1)/26) ;
%// find MSB (recursively if necessary)
if xmsb >= 1
col = [excel_column(xmsb) char(xlsb+64)] ;
else
col = char(xlsb+64) ;
end
cellReference = sprintf('%s1', col);
xlswrite(Spreadsheet_name, final, Tab_name, cellReference);
end
For example;
In excel it is showing like below:
Power 113.2790977
Power1 65.85196443
Power2 80.54553664
Power_percent 92.23339083
But I need the output to be:
Power 113.2
Power1 65.8
Power2 80.5
Power_percent 92.2
Can you guys help me with this?
Thanks in advance
0 件のコメント
回答 (2 件)
Voss
2022 年 2 月 8 日
You could convert those numbers to strings before writing, if you don't mind rounding to one decimal place rather than truncating:
xlswrite(Spreadsheet_name, cellfun(@(x)sprintf('%.1f',x),final,'UniformOutput',false), Tab_name, cellReference);
Or you can set the cells' NumberFormat directly, along these lines:
0 件のコメント
Image Analyst
2022 年 2 月 8 日
What if you round your array with round before you send it to Excel?
array = round(array, 1);
xlswrite(filename, array);
参考
カテゴリ
Help Center および File Exchange で Data Import from MATLAB についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!