Я не уверен, что использую правильную номенклатуру, поэтому я постараюсь сделать мой вопрос как можно более конкретным. Тем не менее, я думаю, что эта проблема возникает постоянно, и, вероятно, есть несколько различных способов ее решения.
Допустим, у меня есть массив (вектор) с именем main
из 1000 случайных лет между 1980 и 2000 годами, и я хочу сделать из него 20 отдельных массивов (векторов). Эти массивы будут именоваться array1980
, array1981
и т. Д., Также будут иметь длину 1000, но будут содержать 1 с, где индекс в имени был равен соответствующему элементу в main
и 0 в другом месте. Другими словами:
for(int i=0; i<1000; i++){
if(main[i]==1980){
array1980[i]=1;
} else {
array1980[i]=0;
}
Конечно, я не хочу писать двадцать из них, поэтому было бы хорошо, если бы я мог создавать новые имена переменных внутри цикла. Проблема в том, что вы вообще не можете назначать имена переменных для выражений с операторами, например,
String("array"+ j)=... # returns an error
В настоящее время я больше всего использую Matlab, но я также немного разбираюсь в Java, c ++ и python, и я пытаюсь понять, как люди решают эту проблему в целом. В идеале я хотел бы иметь возможность манипулировать отдельными переменными (или подмассивами) таким образом, чтобы год оставался в имени переменной (или индекса массива), чтобы уменьшить вероятность ошибки и упростить работу в общем.
Буду признателен за любую помощь.