MATLAB Answers

# Fill in a matrix after an evaluation

3 views (last 30 days)
I want to do a for loop in order to, with a matrix full of zeros of the specific size, calculate the vector error with the formula on d_right, knowing the values of x, y and z. Once I compute the code, this error shows up: "Unable to perform assignment because the left and right sides have a different number of elements". What should I be changing, is it the matrix full of zeros? Thank you in advance
accuracy_right = zeros(76,6)
for i = 1:1:76
data_def_x = target(:,i+1); %All x values
data_def_y = target(:,i+2); %All y values
data_def_z = target(:,i+3); %All z values
d_right = sqrt((data_def_x-x0_r).^2+(data_def_y-y0_r).^2+(data_def_z-z0_r).^2);
accuracy_right(i) = d_right;
end
##### 1 CommentShowHide None
Rik on 26 Apr 2021
i is a single value, and because the data_def variables are vectors, that means d_right is a vector. You're trying to store a vector in a single element.

Sign in to comment.

### Accepted Answer

Rik on 26 Apr 2021
I guess boldly:
x0_r=rand;y0_r=rand;z0_r=rand;
target=rand(6,76+3);
accuracy_right = zeros(76,6);
for i = 1:1:76
data_def_x = target(:,i+1); %All x values
data_def_y = target(:,i+2); %All y values
data_def_z = target(:,i+3); %All z values
d_right = sqrt((data_def_x-x0_r).^2+(data_def_y-y0_r).^2+(data_def_z-z0_r).^2);
accuracy_right(i,:) = d_right;
% ^^
end
##### 1 CommentShowHide None
ILIANNE GUILLOT VIDAL on 26 Apr 2021
Thank you so much!!!!!!

Sign in to comment.

### More Answers (1)

minghuaa lu on 26 Apr 2021
no data target x0_r y0_r z0_r
##### 1 CommentShowHide None
ILIANNE GUILLOT VIDAL on 26 Apr 2021
Yes, it is inserted before the loop

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!