Несоответствие формы Python

Простой ответ заключается в том, что вы не можете, потому что типы данных должны быть специально объявлены во время компиляции.

Если вы можете использовать библиотеки boost,

boost::variant<int,float,double> vec;

может

Вы не можете использовать union, потому что std::vector не является POD (обычный статический тип данных).

EDIT:

Как заметил @Rob:

Указатели Void должны быть преобразованы в указатель на что-то еще - во время компиляции - прежде чем их можно будет использовать таким образом. Таким образом, ответ по-прежнему «не может» использовать указатели void для создания переменной типа данных.

0
задан keineahnung2345 16 January 2019 в 13:50
поделиться

1 ответ

Я не совсем уверен, почему вы не получили ошибку в первой инстанции, а получили только во второй. Но если вы измените свои строки, как показано ниже, все будет работать.

С

Cmap[1:,0,t] = list(ExcInhID*np.ones([Ncells-1,1])*(1 - min(max(t-T/3,0)*(1/(T/3)),0)))
....
Cmap[CC5,4,t] = list(ExcInhID*np.ones([Ncells-1,1])*(min(max(t-T/3,0)*(1/(T/3)),0)))

до

Cmap[1:,0,t] = np.stack(ExcInhID*np.ones([Ncells-1,1])*(1 - min(max(t-T/3,0)*(1/(T/3)),0)), axis=1)
....
Cmap[CC5,4,t] = np.stack(ExcInhID*np.ones([Ncells-1,1])*(min(max(t-T/3,0)*(1/(T/3)),0)), axis=1)
0
ответ дан najeem 16 January 2019 в 13:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: