Если K
- матрица 1 x N, то size(K)
дает [1 N]
.Когда вы используете его в цикле for
, он не работает, поскольку он не является скаляром (на самом деле, и весьма болезненно, Matlab просто использует первый элемент для ограничения цикла и даже не выдает предупреждение).Вместо этого напишите:
for ii=1:numel(K)
Xsol(ii) = (K(ii) - average/2) ;
Xsag(ii) = (K(ii) + average/2) ;
end
Функция numel
возвращает скаляр, т.е. общее количество элементов.
Однако, как отмечает @Jonas, вам не нуженцикл в этом случае.В целом, циклы очень медленны по сравнению с операциями с массивами.