Unable to perform assignment because the size of the left side is 1-by-1 and the size of the right side is 1-by-120.

1 view (last 30 days)
I am getting following error. Anyone can help me to solve it
Unable to perform assignment because the size of the left side is 1-by-1 and the size of the right side
is 1-by-120.
n=20;
for i = 1:n
D(i,:) = min(X(i,:)) + max(X(i,:)) - X(i,:);
end

Answers (1)

the cyclist
the cyclist on 24 Jan 2023
You haven't quite given us enough information about your code, because that little code snippet may or may not work, depending on what D looks like before the loop. In the code below, I show three possible examples of D. The first two work, and the third one does not. I expect your full code defines D to be the wrong size going into the loop.
% Some made-up data
rng default
X = rand(120,120);
% D is not yet defined
disp("D not defined")
D not defined
% Your code
n=20;
for i = 1:n
D(i,:) = min(X(i,:)) + max(X(i,:)) - X(i,:);
end
% An example of D that works
D = rand(1,120);
disp("D is 1x30")
D is 1x30
% Your code
n=20;
for i = 1:n
D(i,:) = min(X(i,:)) + max(X(i,:)) - X(i,:);
end
% An example of D that does not work
D = rand(1,1);
disp("D is 1x1")
D is 1x1
% Your code
n=20;
for i = 1:n
D(i,:) = min(X(i,:)) + max(X(i,:)) - X(i,:);
end
Unable to perform assignment because the size of the left side is 1-by-1 and the size of the right side is 1-by-120.

Categories

Find more on Animation in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!