Можно использовать cat
(связывают) функцию для этого. Это берет аргумент ключевого слова dims
, который позволяет Вам указывать размер, вдоль которого требуется конкатенировать.
julia> A = rand(2,3,4,5);
julia> B = rand(2,3,6,5);
julia> C = cat(A, B, dims=3);
julia> size(C)
(2, 3, 10, 5)
можно узнать больше об эти cat
функция путем ввода ?cat
в Julia REPL.
В Python есть концепция неизменных типов . Неизмеренный тип не может иметь его значение изменилось. Примеры встроенных неизменных типов int, float и ул.
Сказав, что вы не можете делать то, что вы хотите с Boost :: Python
, потому что сам Python не позволяет вам изменить значение поплавка, возвращаемого функцией.
Ваш второй пример показывает одно решение, другое было бы создание тонконапорных и выставляющих, что:
void Foo_set_x(Foo& self, float value) {
self.get() = value;
}
class_<Foo>("Foo", init<float>())
...
.def("set", &Foo_set_x);
;
, который является лучшим решением, чем для изменения исходного класса C ++.
Вы уверены, что объект c ++ копируется? Каждый раз вы будете получать новый объект python, но который ссылается на один и тот же объект C ++. Как вы определяете, что объект был скопирован?
Я мало что знаю о Boost.Python, поэтому могу неправильно понять вопрос, и в этом случае это совершенно бесполезно. Но вот что:
В Python вы не можете выбирать между возвратом по ссылке или по значению, различие в Python не имеет смысла. Я считаю, что легче всего думать об этом как о том, что все обрабатывается по ссылке.
У вас есть просто объекты, и у вас есть имена для этих объектов. Итак
foo = "ryiuy"
Создает строковый объект «ryiuy», а затем позволяет вам ссылаться на этот строковый объект с именем «foo». Итак, в Python, когда вы что-то передаете, вы передаете этот объект. Не существует "значений" как таковых, поэтому вы не можете передать значение. Но опять же, это также верная точка зрения, что здесь тоже нет ссылок, только объекты и их имена.
Итак, ответ таков: Я предполагаю, что когда вы получаете ссылку на C, вам нужно передать ссылку на объект, который ссылается на Python. И когда вы получаете значение в C, вам необходимо передать ссылку на объект, который вы создаете из этого значения, в Python.
] Я думаю, вы хотите [] вернуть внутреннюю ссылку [] вместо этого. Я использовал ее раньше, чтобы сделать нечто подобное. [
] []Редактирование: []Последняя док[] [
]