CSVread empty cells non zero

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 Comments

Jan
Jan on 19 Mar 2019
Edited: Jan on 19 Mar 2019
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.
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.

Sign in to comment.

Answers (1)

Raghunandan V
Raghunandan V on 19 Mar 2019
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!

Products

Release

R2018a

Asked:

on 19 Mar 2019

Answered:

on 19 Mar 2019

Community Treasure Hunt

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

Start Hunting!