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.

3 次查看(过去 30 天)
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

回答(1 个)

the cyclist
the cyclist 2023-1-24
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.

类别

Help CenterFile Exchange 中查找有关 Animation 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by