I have a cell array (see picture). I want to fill those gaps by a number. How can i do this? I will really appreciate your help. Thanks
1 回表示 (過去 30 日間)
古いコメントを表示
i tried this code. But it didn't work
for jj=1:r_txt-1
if isempty(DO_txt(jj));
DO_txt2{jj,1}={'0'};
end
end
0 件のコメント
回答 (1 件)
Walter Roberson
2016 年 10 月 30 日
mask = cellfun(@isempty, D0_txt(1:r_txt-1));
D0_txt2(mask) = {'0'};
3 件のコメント
Walter Roberson
2016 年 10 月 31 日
Works for me, other than it coming out as a row vector by default:
D0_txt = cell(20,1);
D0_txt([3,7,13,19]) = {'10A'};
r_txt = 20;
mask = cellfun(@isempty, D0_txt(1:r_txt-1));
D0_txt2(mask) = {'0'};
>> D0_txt2
D0_txt2 =
1×18 cell array
'0' '0' [] '0' '0' '0' [] '0' '0' '0' '0' '0' [] '0' '0' '0' '0' '0'
Possibly your cells that look blank are not empty and hold blanks instead.
You might notice that the output includes [] . Those are at the positions where D0_txt was not empty. You did not define what the contents of D0_txt2 should be where D0_txt is not empty.
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!