# plotting figure ignore blank entries

32 views (last 30 days)
Emily Platt on 19 May 2021
Commented: Adam Danz on 22 May 2021
hello
i have a cell array with 5000+ rows and 1 column
i was to plot a figure but my problem is that there are many blank entries. i want the figure to consider plots from the previous entry that has a number to the next one (i.e. i will be doing a stacked time series so i dont want these empty cells to be completely ignored)
Emily Platt on 20 May 2021
TapsX=
'321'
''
''
''
''
''
''
''
'264'
''
''
''
''
''
''
''
'301'
...
so between every value there are 7 empty cells
I want to use the plot function to make a simple one line figure

Adam Danz on 20 May 2021
Edited: Adam Danz on 20 May 2021
Convert the cell array of character vectors or the string array to a numeric vector, then remove NaN values.
% Or string array: TapsX = ["123" "" "" "" "200" "" "" "321" "" ""];
TapsX = {'123' '' '' '' '200' '' '' '321' '' ''};
TapsXnum = str2double(TapsX)
TapsXnum = 1×10
123 NaN NaN NaN 200 NaN NaN 321 NaN NaN
TapsXnum(isnan(TapsXnum)) = []
TapsXnum = 1×3
123 200 321
Since you have TapsX I assume you have TapsY with the same problem. In that case you'll need to remove the elements pair-wise to maintain the paired coordinates.
TapsX = ["123" "94" "" "" "200" "" "88" "321" "" "2"];
TapsY = [ "" "94" "135" "" "200" "" "88" "" "112" "2"];
TapsXnum = str2double(TapsX);
TapsYnum = str2double(TapsY);
nanIdx = isnan(TapsXnum) | isnan(TapsYnum);
TapsXnum(nanIdx) = []
TapsXnum = 1×4
94 200 88 2
TapsYnum(nanIdx) = []
TapsYnum = 1×4
94 200 88 2
Lastly, I suspicious as to why your numeric values are represented as strings in the first place. If the are read in that way from a file, the best solution might be to read them in correctly as numeric values. Why are they strings?
##### 2 CommentsShowHide 1 older comment
Adam Danz on 22 May 2021
You shouldn't have too much trouble adapting that to your data. If you have any trouble show us what you've got and I can help straighten it out.

Mathieu NOE on 20 May 2021
hello
remove first the empty cells , example below (R is the cell array)
R = R(~cellfun('isempty',R));
plot(cell2mat(R))
Adam Danz on 20 May 2021
The output is a char array. If R is a row vector, then the output is one long char vector.
R = {'123' '' '' '' '200' '' '' '321' '' ''}';
R = R(~cellfun('isempty',R))
R = 3×1 cell array
{'123'} {'200'} {'321'}
cell2mat(R)
ans = 3×3 char array
'123' '200' '321'

### Categories

Find more on Annotations in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by