How to read rows until I find blank row in csv file and copy to another cell?

6 ビュー (過去 30 日間)
Gopal Pande
Gopal Pande 2020 年 9 月 19 日
コメント済み: Walter Roberson 2020 年 9 月 22 日
I have .csv file with data.after few rows there are blank rows, blank row can be after 2 rows or after 5 rows or maybe after 150 rows it's not fixed. I wanted to copy data until find blank row and create seperate cell to use it further and do same with next rows of data until I find next blank row. Stuck with logic, tried using readmatrix(filename), tried detecting blank row from 'NaN' string Not able to solve this problem..

回答 (1 件)

Walter Roberson
Walter Roberson 2020 年 9 月 19 日
編集済み: Walter Roberson 2020 年 9 月 19 日
d = readmatrix(filename)
mask = any(isnan(d), 2).';
starts = findstr([false, mask], [0,1]);
stops = findstr([mask, false], [1,0]);
blocks = arrayfun(@(s,e)d(s:e,:), starts, stops, 'uniform', 0);
  6 件のコメント
Gopal Pande
Gopal Pande 2020 年 9 月 22 日
New lines of code works better than previous.
But in blocks var blank row is getting copied into another cell, I want to copy data and not blank row which can be seperated/identified by NaN.
But thanks anyway, i am also debugging this code further to get what is intended...
Walter Roberson
Walter Roberson 2020 年 9 月 22 日
starts = findstr([false, mask], [0,1]) + 1;

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

カテゴリ

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

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by