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

5 Ansichten (letzte 30 Tage)
康二
康二 am 15 Mai 2023
Verschoben: Atsushi Ueno am 15 Mai 2023
readcellを使ってCSVを読み込み、そのまま表示すると元のCSVファイルと同じ数値が表示されますが、cell2matに変換するとデータが1/1000になってしまうほか、データによっては小数点以下の数値が消えてしまいます。
以前はcsvreadを使っていましたが、バージョン変わって使えなくなったことによる対応ですが、計算結果もかわってしまいました。
  2 Kommentare
Atsushi Ueno
Atsushi Ueno am 15 Mai 2023
Verschoben: Atsushi Ueno am 15 Mai 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
康二
康二 am 15 Mai 2023
Verschoben: Atsushi Ueno am 15 Mai 2023
まさにそのような感じです。
別の箇所にエラーあり、精査して解決しました。
ありがとうございます。

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu table finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!