i have S= 6*3 matrix and i want to give sequencial name to each element like s(1,1)=p1 ....s(1,2)=p2...
1 次查看(过去 30 天)
显示 更早的评论
i have random 6*3 matrix and want to give name to each element in sequence like i call p1 than show me the data of s(1,1)
0 个评论
采纳的回答
Steven Lord
2016-12-9
You just need to iterate over the elements of an array? That's easy with linear indexing and does not require creating many scalar variables.
M = magic(5)
for whichElement = 1:numel(M)
fprintf('Element %d of M is %d.\n', whichElement, M(whichElement));
end
Note that this walks down the columns of M first since MATLAB is column-major. But if you need to walk across the rows first, transpose M. Walking down the columns of the transpose of M is like walking across the rows of M itself.
M = magic(5)
Mt = M.';
% Note that I displayed M but I'm indexing into Mt in the code below.
for whichElement = 1:numel(Mt)
fprintf('Element %d of M (row-wise) is %d.\n', whichElement, Mt(whichElement));
end
Also note that the for loop does not need to change at all if I want to display (or operate on) a different sized or shaped M matrix. The only change I would need to make would be to the definition of M itself.
0 个评论
更多回答(1 个)
KSSV
2016-12-9
Why you want do it? You can call them by s(1,:),s(2,:) etc...it is not suggested what you want to do.
另请参阅
类别
在 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!