How to import a column from an Excel file?
19 次查看(过去 30 天)
显示 更早的评论
This is my excel file:
Here I read the entire column A of the Excel sheet named "Lazy_eight" but the problem is that I have different sheets in which the column A has a different number of elements. So, I want to import only the numbers without specifing the length of the column vector.
I use the function readmatrix with the following syntax in order to read the entire column:
p_time = readmatrix('Input_signals.xlsx','Sheet','Lazy_eight','Range','A:A')
i get this in matlab workspace:
So, I wish to give to the "readmatrix" function only the first element of the column I want to import but I want that it stops at the last element, without specifing the coordinate of the last element in order to avoid the NaN that you can see in the last image. I want to import only the numbers without the NaN value.
I cannot read the initial and the last element (in this way: 'Range', 'A3: A13') beacuse in every sheet the column A (as the other ones) has a different number of elements.
2 个评论
João Mendes
2021-4-16
Maybe you can just import the entire matrix and then, in matlab, isolate the first column? Or that is not what you want?
采纳的回答
Clayton Gotberg
2021-4-16
Since it seems that you just need to get rid of the NaN values, try using logical indexing with the isnan command.
p_time = p_time(~isnan(p_time));
This will remove all NaN values from the p_time vector.
As an example:
p_time = [5 NaN 3 7 NaN]; %double
eliminate_NaN_logical = ~isnan(p_time)
returns
eliminate_NaN_logical = [1 0 1 1 0]; %logical
and
p_time_cropped = p_time(eliminate_NaN_logical)
returns
p_time_cropped = [5 3 7]; %double
because MATLAB assumes you want a vector with only the elements for which eliminate_NaN_logical is true.
0 个评论
更多回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Import from MATLAB 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!