Cell computations - for loop

2 次查看(过去 30 天)
Uerm
Uerm 2019-10-14
回答: Uerm 2019-10-17
Hi, I have a variable RRI, which is a 1x48 cell, each cell being matrices of different sizes.
m = 0;
for num = 1:length(RRI{1,1})-1
if (RRI{1,1}(num+1)-RRI{1,1}(num) > 50*10^(-3)*360)
m = m+1;
end
end
The code above works perfectly fine for one of the cells and when I do the computations individually for each cell. How can I (in a for loop for instance) do this for all 48 cells (RRI{1,i}, i = 1:48) and store the results in the variable m, which should also be a 1x48 cell?
Thanks!

采纳的回答

Samatha Aleti
Samatha Aleti 2019-10-17
You can add another “for” loop and use a cell array to store the result. Folllowings a sample code:
m = repmat({zeros(1,1)},1,48) ; % Initialize
for i=1:length(RRI)
n = 0;
for num = 1:length(RRI{1,i})-1
if (RRI{1,i}(num+1)-RRI{1,i}(num) > 50*10^(-3)*360)
n = n+1;
end
end
m{i} = n;
end

更多回答(1 个)

Uerm
Uerm 2019-10-17
Thank you. Your solution works!
How can I do the same for the following (see attached image): RRIseg is a 1x48 cell containing matrices of ROWx127. For all the cells, I want to compute exactly the same thing as above but along the rows of each matrix. For instance, if cell 1 is a 34x127 matrix, the result should be a 34x1 vector. How can I do that? Is it by using cellfun?

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by