Subscripted assignment dimension mismatch

1 ビュー (過去 30 日間)
Shane McNamara
Shane McNamara 2017 年 10 月 25 日
コメント済み: Shane McNamara 2017 年 10 月 26 日
Can anyone highlight why i am getting this error in the below code please?
domainSize = [50 50];
domain = zeros(domainSize);
domain(24:26,24:26) = 1;
% Generate Position Arrays
[particlePosition(:,1), particlePosition(:,2)] =find(domain);
for i = 1:length(particlePosition)
%Select Direction to Move
switch ceil(4 * rand)
case 1
dR = [-1 0];
case 2
dR = [+1 0];
case 3
dR = [0 -1];
case 4
dR = [0 +1];
end
%New Particle Location
tempPosition = particlePosition + dR;
%Move Particle
particlePosition(i,:) = tempPosition;
end

採用された回答

Roger Stafford
Roger Stafford 2017 年 10 月 25 日
There are quite a few things wrong with this code.
1) In “for i = 1:length(particlePosition)” you will get only three values of i from 1 to 3, but you have nine “particles” to move.
2) The part of the code that begins with “%New Particle Location” is located outside the for-loop so only the last “particle” is moved.
3) The line “tempPosition = particlePosition + dR;” attempts to add ‘particlePosition’, which is a 9 x 2 matrix to ‘dR’, which is only a 1 x 2 vector. Naturally Matlab will object strenuously to such an ill-advised attempt. This is undoubtedly the source of your error message.
  2 件のコメント
Shane McNamara
Shane McNamara 2017 年 10 月 26 日
Thanks for your help :D

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

その他の回答 (0 件)

カテゴリ

Find more on Linear Algebra in Help Center and File Exchange

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by