Error in array bounds
1 回表示 (過去 30 日間)
古いコメントを表示
clc; clear all; close all;
load('bunny.mat')
%% Visualize PC
figure;
scatter3(P(1,:), P(2,:), P(3,:),10,Color,'filled');
xlabel('x axis');
ylabel('y axis');
zlabel('z axis');
%% Problem 1:
title('bunny1');
saveas(gcf, "bunny1");
for sx=0.01:5
P = [];
s = [sx, 0, 0;
0, sx, 0;
0, 0, sx];
for i = 1:2396
pi = P(:,i);
spi = s * pi;
P = [SP,spi];
end
figure;
scatter3(P(1,:), P(2,:), P(3,:),10,Color,'filled');
xlabel('x axis');
ylabel('y axis');
zlabel('z axis');
end
Below is not part of the code
*color is 1x2396 and P is 3x2396
Why do I get the error "Index in position 2 exceeds array bounds.
Error in script (line 23)
pi = P(:,i);"? and how do I fix it?
0 件のコメント
回答 (2 件)
DGM
2021 年 10 月 13 日
編集済み: DGM
2021 年 10 月 13 日
% ...
% this loop has been simplified to the point that it works
% for sx = 0.01:5
% s = [sx, 0, 0;
% 0, sx, 0;
% 0, 0, sx];
%
% for k = 1:size(P,2)
% P(:,k) = s * P(:,k);
% end
% end
% but it's needlessly roundabout, because it simplifies to
P = P*4.01;
% which is probably not what you want, but you haven't described that.
scatter3(P(1,:), P(2,:), P(3,:),10,Color,'filled');
xlabel('x axis');
ylabel('y axis');
zlabel('z axis');
2 件のコメント
DGM
2021 年 10 月 13 日
Nobody knows, because nobody else knows what the required values are.
The only information you provided was nonfunctioning code which appears to do what I demonstrated. You're multiplying each point by the identity matrix (multiplied by a scalar sx). As the name "identity matrix" implies, the result is the point itself multiplied by sx. Since the results are overwritten each time the loop iterates, the result is P multiplied by the last value of sx, which is 4.01. You could plot the points each time...
% ...
for sx = 0.01:5
Ps = P*sx;
scatter3(Ps(1,:), Ps(2,:), Ps(3,:),10,Color,'filled'); hold on
end
xlabel('x axis');
ylabel('y axis');
zlabel('z axis');
If the code is supposed to do something else, then you'll have to clearly describe what that is.
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!