Я пытаюсь сгенерировать многочлены Laguerre, а затем оценивать их по элементу через массив координат.MATLAB R2012b - Передача массивов и ints в evalin (symengine, expression)
В настоящее время мой код выглядит примерно так:
[X,Y] = meshgrid(x_min:mesh_size:x_max,y_min:mesh_size:y_max);
const_p=0;
const_l=1; %At present these two values don't really matter, any integer will do
coord_r = sqrt(X.^2 + Y.^2)
lag_input = num2str(coord_r.^2)
u_pl = evalin(symengine,['orthpoly::laguerre(',num2str(const_p),',',num2str(const_l),',',lag_input,')']);
Однако, которая возвращает следующее сообщение об ошибке для последней строки;
Ошибка при помощи horzcat
Размеры матриц, сцеплены не согласуются.
Я предполагал, что это произошло потому, что три объекта, которые были преобразованы в строки, имели разные размеры, но после того, как они сделали их одного и того же размера, проблема остается.
Я бы предпочел избегать обхода каждого элемента, если я могу его избежать.
Вы уверены, что 'lag_input' на самом деле не является вектором столбца? Кроме того, вы можете найти 'feval' более удобным. – horchler
@horchler - coord_r - квадратный массив (в настоящее время 512x512), а lag_input имеет размер 512x6650. Я проверю feval, приветствия. –
Исходный размер данных не имеет значения. Вы конкатенируете все по горизонтали в строке, поэтому строки должны быть векторами строк. Проверьте их размеры. 'feval' может работать, если функция MuPAD была разработана для векторизованных входов - большинство из них не так нужны другим трюкам. – horchler