eliminating, whenever is necessary the first column in nun where [num,txt,r​aw]=xlsrea​d('data.xl​sx');

1 次查看(过去 30 天)
Dear all, I am struggling to find a solution to the following problem. I load many excel files Say for instance that I load the following file
[num,txt,raw]=xlsread('data.xlsx');
The problem is that sometimes the first column of the “raw” matix, which normally contains this type of information
[ NaN]
[ NaN]
[ NaN]
[ NaN]
[ NaN]
[ NaN]
[ NaN]
' YEs'
'NO'
Contains also numbers in some cells. For example
[ NaN]
[ NaN]
[ NaN]
[ NaN]
[ NaN]
[ NaN]
[ NaN]
' YEs'
'NO'
[ 0]
As a result of this situation, the matrix “num” , creates a first column which is useless as it contain no information(it contains only NaN and zeros). If the first column of the “raw” matrix contains no numbers then such useless column does not appear in “num”
My goal was to develop a code that could identify this problem and eliminate, whenever is needed, the first useless column from “num”
So far I have made no progress
thanks
  2 个评论
Sabbas
Sabbas 2012-7-2
编辑:Sabbas 2012-7-2
I have an idea. The first column of “num” will be useless is it contains ONLY NaNs AND zeros
So I am looking for something like
if isnan(num(:,1)) & num(:,1) contains zeros
num(:,1)=[]
end
I have some difficulty, though , with the expression
if isnan(num(:,1)) & num(:,1) contains zeros
thanks

请先登录,再进行评论。

采纳的回答

Kye Taylor
Kye Taylor 2012-7-3
I like your approach.
try
if all (isnan(num(:,1)) | num(:,1) == 0)
num(:,1) = [];
end
note that there may still be some NaNs in the first column. To remove the first column whenever any nan is present, try
if any(isnan(:,1))
num(:,1) = [];
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by