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!