For loop through a cell array

조회 수: 3 (최근 30일)
Burak
Burak 2021년 5월 21일
댓글: Jan 2021년 5월 21일
Hi, I need to calculate a for loop through a cell array. Each element has 5x5 matrixes. As seen in the code, I need to calculate a for loop in each element of D.
clc
clear all
N=5;
xn=linspace(2,4,N);
yn=xn;
for nx=1:N
for ny=1:N
E1(nx,ny)=xn(nx)*1i+(xn(nx)-yn(ny)^2);
E2(nx,ny)=(xn(nx)+yn(ny))*1i+xn(nx);
end
end
a11=E1.*conj(E1);
a12=E1.*conj(E2);
a21=E2.*conj(E1);
a22=E2.*conj(E2);
A=[a11 a12;a21 a22];
B={E1;E2};
C={conj(E1);conj(E2)};
D=cell(2,2);
for i=1:2
for j=1:2
D{i,j}=B{i}.*C{j};
end
end
  댓글 수: 3
Burak
Burak 2021년 5월 21일
Sir, as I mentioned at the top, I need to calculate a for loop for each element of D cell matrix. I don't know how to do it. This is an example code. There are E1,E2,...,E8. and each of them are 150x150 size. So my D cell matrix is 8x8 and each element is 150x150 matrix.
Jan
Jan 2021년 5월 21일
Your code seems to be fine for this job. So which problem do you want to solve now? In the code you use a {2 x 2} cell. If your real data are {8 x 8} simply change the code to:
D = cell(28, 8);
for i = 1:8
for j = 1:8
D{i,j} = B{i} .* C{j};
end
end

댓글을 달려면 로그인하십시오.

답변 (1개)

Jonas
Jonas 2021년 5월 21일
if you want to do a specific operation on each cell, then have a look into the cellfun() function
  댓글 수: 1
Jan
Jan 2021년 5월 21일
cellfun is nice and compact, but harder to code, more difficult to debug and it has a larger run time.

댓글을 달려면 로그인하십시오.

카테고리

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