How to use parfor to delete the first c elements of each cell of b?
1 回表示 (過去 30 日間)
古いコメントを表示
How to use parfor to delete the first c elements of cell b?
Error: The variable b in a parfor cannot be classified.
b=cell(1000,1);
c=randi(2,1000,1);
parfor m=1:1000
b{m,1}(1:c(m))=[];
end
0 件のコメント
回答 (1 件)
Image Analyst
2018 年 5 月 15 日
Try this:
b=cell(1000,1); % Initialize to empty cells.
c = 10; % Whatever.
% Delete the first c cells
b(1:c) = [];
% Check that we have 9990 cells now.
whos b
2 件のコメント
Image Analyst
2018 年 5 月 15 日
Try this then:
% Create some random b
b = cell(10, 1);
for k = 1 : length(b)
b{k} = randi(99, 1, 5);
end
celldisp(b);
% Define c - it's random for each cell of b.
c = randi(4, length(b), 1)
% Use each c to delete that many elements from
% the corresponding cell of b
for k = 1 : length(b)
thisCell = b{k};
b{k} = thisCell(c(k)+1:end);
end
celldisp(b);
% or use cellfun().
参考
カテゴリ
Help Center および File Exchange で Parallel for-Loops (parfor) についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!