CSVread empty cells non zero

13 ビュー (過去 30 日間)
Hayley Sanders
Hayley Sanders 2019 年 3 月 19 日
回答済み: Raghunandan V 2019 年 3 月 19 日
I'm trying to change the default empty cell input for Matlab.
I need to read a csv file and output an array using csvread. I suspect that after it reads and puts it into the array it's already zero so can't read as empty?
function [A] =createanarray(filename, linestoskip)
A=csvread(filename,linestoskip); %read the file and skip the input number of lines
if A(isempty(A))=-999
A(A<0)= NaN; %make no value NaN
A; %output A array
end
Many thanks!
  2 件のコメント
Jan
Jan 2019 年 3 月 19 日
編集済み: Jan 2019 年 3 月 19 日
Today I've formatted your code to increase the readability. You can do this by your own in the future.
I cannot guess the purpose of: A(isempty(A))=-999 . This is not a comparison, but an assignment. See the difference between = and == . The statement "A;" is useless also.
csvread does not import empty elements. Please post what your inputs are and what you want as output.
Hayley Sanders
Hayley Sanders 2019 年 3 月 19 日
So for example the file i want to import is an excel csv that is:
2 3 3 4 0
1 2 3 4
0 0 2 3 1
With a blank cell. On assignment of array A with
A=csvread('filename')
it changes the blank cell to a zero value. I want to change this to NaN entry.

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

回答 (1 件)

Raghunandan V
Raghunandan V 2019 年 3 月 19 日
Hi, The answer is simple. You try with xlsread
[A, B, C ] = xlsread('Data.xlxs');
Here A gives all the numbers of the matrix.
So if there is a cell with no numbers then it will return NaN. Even if there is a string or emptry cell it still returns NaN.
Try it!

カテゴリ

Help Center および File ExchangeResizing and Reshaping Matrices についてさらに検索

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by