Matlab takes in wrong data in command window
6 ビュー (過去 30 日間)
古いコメントを表示
[fname, pname] = uigetfile('*.csv'); %ask for file
filename= fullfile(pname, fname); %file as string
assert(exist(filename, 'file')==2,'%s does not exist.', filename); %check if file exist
data = csvread(filename, 1) % reads data from file skipping headers
***************************Excel Data***************
(just need to shift values to according heading, they are in order)(there are like 55,000 rows but these are the first couple)
Latitude Longitude Elevation (metres) Distance (KMs) Gradient
30.6183 -96.33631 103.7 0 0
30.61832 -96.33629 103.6 0.003 0
30.61845 -96.3361 102.8 0.026 0
30.61845 -96.33608 102.7 0.028 0
**************************Data from Matlab************************
0.0363 -0.1203 0.1592 2.7105 0
0.0363 -0.1203 0.1595 2.7105 0
0.0363 -0.1203 0.1595 2.7106 0
0.0363 -0.1203 0.1578 2.7106 -0.0010
0.0363 -0.1203 0.1571 2.7107 -0.0020
5 件のコメント
Image Analyst
2017 年 6 月 12 日
編集済み: Image Analyst
2017 年 6 月 12 日
He meant to attach your CSV file, NOT a screenshot. Please attach a CSV file that demonstrates the problem so we can replicate it.
What's showing in the Excel screenshot is not the kind of CSV file that MATLAB likes. It should be just numbers, not numbers and text with some rows of numbers having different numbers of columns than other rows.
採用された回答
Image Analyst
2017 年 6 月 13 日
The data from MATLAB is the same, it's just that when you echo it to the command window, the data is multiplied by 1e-3. If you use fprintf() instead of just letting it automatically echo to the screen, you'll see they are the same (I tried it).
11 件のコメント
Image Analyst
2017 年 6 月 13 日
You can see in dpb's post that both csvread() and textread() have the same numbers, they're just formatted differently in the display. csvread has the 1.0e+03 in there whereas text read doesn't. But internally, in your code, using the arrays from either function will give you the same result. If you echo to the command line, the 1.0e+03 just scrolled off the top of the command window, like Walter and I said, but it's still the same numbers. So I'd use csvread() (if you have a recent version where you can tell it to skip a header line) since textread() is deprecated.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Text Data Preparation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!