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

7 views (last 30 days)
康二
康二 on 15 May 2023
Moved: Atsushi Ueno on 15 May 2023
readcellを使ってCSVを読み込み、そのまま表示すると元のCSVファイルと同じ数値が表示されますが、cell2matに変換するとデータが1/1000になってしまうほか、データによっては小数点以下の数値が消えてしまいます。
以前はcsvreadを使っていましたが、バージョン変わって使えなくなったことによる対応ですが、計算結果もかわってしまいました。
  2 Comments
Atsushi Ueno
Atsushi Ueno on 15 May 2023
Moved: Atsushi Ueno on 15 May 2023
こんな感じでしょうか?
もし違っていたら、どんなデータで問題が生じるのか、具体的なデータを挙げて頂けると解決に繋がります。
もしそうであれば、結果としては間違っていません。行列に変換した後の値は冒頭に「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
康二
康二 on 15 May 2023
Moved: Atsushi Ueno on 15 May 2023
まさにそのような感じです。
別の箇所にエラーあり、精査して解決しました。
ありがとうございます。

Sign in to comment.

Answers (0)

Categories

Find more on データのインポートと解析 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!