Matlab index (I tried to name a matrix to use in a loop like variables.)
조회 수: 3 (최근 30일)
이전 댓글 표시
I tried to name a matrix to use in a loop like variables.
for example
A(1)=[1 2;3 4]
A(2)=A(1)*2
A(3)=A(2)*2
.
.
.
A(j)=A(j-1)*2
But I can't use the notation A(j) in the loop. what should I call the j of A?
댓글 수: 0
답변 (3개)
bio lim
2015년 7월 24일
You can use cell arrays to do the task. Simple example is,
A{1} = [1 2; 3 4];
for j = 2 : 10;
A{j} = A{j-1} * 2;
end
댓글 수: 3
bio lim
2015년 7월 24일
편집: bio lim
2015년 7월 24일
It is better to use curly braces rather than using normal brackets. For example, if you define a matrix A, then A(i) suggests the i'th element of the A matrix (as a column vector ). Moreover, your code
n=4; % define accord to your requriements
A(1)=[1 2;3 4]
for i=1:n
A(i)=A(i-1)*2;
end
won't work because in A(i) = B, the number of elements in i and B must be the same.
Jan
2015년 7월 24일
A{j} is the wanted matrix. The curly braces mean, that the contents of the cell array is replied, not the cell itself.
Muhammad Usman Saleem
2015년 7월 24일
편집: Muhammad Usman Saleem
2015년 7월 24일
use the for loop approach to save time. Please define n(representing the times you want these calculations
n=4; % define accord to your requriements
A(1)=[1 2;3 4]
for i=1:n
A(i)=A(i-1)*2;
end
댓글 수: 3
Muhammad Usman Saleem
2015년 7월 24일
@Walter actually the given question required little more explanations. Specially in term of output (vector or matrix)
Jan
2015년 7월 24일
Either use a cell array, as coffee Murun has suggested:
A{1} = [1 2; 3 4];
for j = 2 : 10;
A{j} = A{j-1} * 2;
end
Or use a 3D-array:
A(:,:,1) = [1 2; 3 4]; % This is the same as: A = [1 2; 3 4]
for j = 2 : 10;
A(:, :, j) = A(:, :, j-1) * 2;
end
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!