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 vue (au cours des 30 derniers jours)
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

Réponses (1)

the cyclist
the cyclist le 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.

Catégories

En savoir plus sur Animation dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by