Cell computations - for loop

7 ビュー (過去 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 very much. It works perfectly!

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

その他の回答 (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 Center および File ExchangeLoops and Conditional Statements についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by