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 Center および File ExchangeAnimation についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by