Unable to perform assignment because the indices on the left side are not compatible with the size of the right side.

1 次查看(过去 30 天)
I have this code (data attached) and i receive this error: "Unable to perform assignment because the indices on the left side are not compatible with the size of the right side". I tougth the problem was related to NaN and i also tried to remove them (third rows of the code) but it still give me this error.
Can someone help me?
load ('sclerometrica_equotip_v1')
misure = [ID_stop L Nn Bn];
% misure(any(isnan(misure), 2), :) = [];
ID_stop1 = misure(:,1);
L1 = misure(:,2);
Nn1 = misure(:,3);
Bn1 = misure(:,4);
k = unique(ID_stop1);
for i = 1:numel(k)
index = (ID_stop1 == k(i));
N= Nn1(index); %battute nodi
j = unique(N);
for m = 1:numel(j)
index2 = (N == j(m));
L_nodo = L1(index2);
end
end
  3 个评论
EM geo
EM geo 2019-3-6
yes sorry, i don't know what happens, it works also to me but it doesn't give me what i expect. I want to save the results of L_nodo in a matrix or in a cell array. For a cell array i tried this one (see modify in the code below), but in the second loop it overwrite each time the results. So i need 20 cells and in each cell there should be 20 sub-cells. After that i need an histogram for each cell.
I really don't know how to do.
k = unique(ID_stop1);
result = cell(1, numel(k));
for i = 1:numel(k)
index = (ID_stop1 == k(i));
N= Nn1(index); %battute nodi
j = unique(N);
for m = 1:numel(j)
index2 = (N == j(m));
L_nodo = L1(index2);
result{m} = L_nodo; %<--modify
end
end

请先登录,再进行评论。

回答(1 个)

nirit
nirit 2019-3-6
编辑:nirit 2019-3-6
Not sure I understand.I tried you run it with /without the commented line and all worked fine without errors.
have you cleared your workspace variables before running this code?

类别

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

Community Treasure Hunt

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

Start Hunting!

Translated by