#matlab
#matlab
Вопрос:
У меня есть простая проблема с вложенной индексацией цикла for, которую я не могу решить. Я хотел бы индексировать x из 1: NaNb, используя только i и j. Поэтому я хотел бы заменить «a» в следующем коде комбинацией i и j, где он будет индексироваться от 1 до Na * Nb. Два цикла for нельзя изменить, поскольку они используются для других вычислений. Единственное, что следует изменить, это «a». Буду признателен за любые предложения. Заранее благодарю вас!
for i = 1:Na
for j = 1:Nb
x(a) = ABC;
end
end
Ответ №1:
С ограничением контекста и типов / объявлений переменных, это то, что я придумал. Индекс x()
вычисляется с использованием комбинации i
и j
.
Метод 1:
Na = 10;
Nb = 10;
x = strings(1,Na*Nb);
for i = 1:Na
for j = 1:Nb
x(1,((i-1)*Na j)) = 'ABC';
end
end
Способ 2:
Na = 10;
Nb = 10;
x = strings(1,Na*Nb);
Index = 1;
for i = 1:Na
for j = 1:Nb
x(Index) = 'ABC';
Index = Index 1;
end
end
Если ABC является переменной типа integer
Na = 10;
Nb = 10;
ABC = 1;
x = zeros(1,Na*Nb);
for i = 1:Na
for j = 1:Nb
x(1,((i-1)*Na j)) = ABC;
end
end
Использование версии MATLAB: R2019b
Комментарии:
1. Спасибо! Второй метод — это именно то, что я ищу. Я просто хочу сохранить от 1 до Na * Nb.