readcellで読​み込んだ数値データを​cell2matで変​換すると、cellで​表示される小数の桁数​が変わり1/1000​になってしまいます。

6 ビュー (過去 30 日間)
康二
康二 2023 年 5 月 15 日
移動済み: Atsushi Ueno 2023 年 5 月 15 日
readcellを使ってCSVを読み込み、そのまま表示すると元のCSVファイルと同じ数値が表示されますが、cell2matに変換するとデータが1/1000になってしまうほか、データによっては小数点以下の数値が消えてしまいます。
以前はcsvreadを使っていましたが、バージョン変わって使えなくなったことによる対応ですが、計算結果もかわってしまいました。
  2 件のコメント
Atsushi Ueno
Atsushi Ueno 2023 年 5 月 15 日
移動済み: Atsushi Ueno 2023 年 5 月 15 日
こんな感じでしょうか?
もし違っていたら、どんなデータで問題が生じるのか、具体的なデータを挙げて頂けると解決に繋がります。
もしそうであれば、結果としては間違っていません。行列に変換した後の値は冒頭に「1.0e+03 * ...」が付いている為、続く表示内容が1/1000になっています。
format long
writematrix(rand(2,5)+1234,'temp.csv')
type temp.csv
1234.87033463282,1234.24475079631,1234.33403863477,1234.66371267641,1234.26570206967 1234.97312640451,1234.69117958142,1234.15524743975,1234.0553349596,1234.76923515855
C = readcell('temp.csv');
X = cell2mat(C)
X = 2×5
1.0e+03 * 1.234870334632820 1.234244750796310 1.234334038634770 1.234663712676410 1.234265702069670 1.234973126404510 1.234691179581420 1.234155247439750 1.234055334959600 1.234769235158550
康二
康二 2023 年 5 月 15 日
移動済み: Atsushi Ueno 2023 年 5 月 15 日
まさにそのような感じです。
別の箇所にエラーあり、精査して解決しました。
ありがとうございます。

サインインしてコメントする。

回答 (0 件)

カテゴリ

Help Center および File Exchangetable についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!