左辺のサイズが 1x1 で右辺のサイズが 0x1 であるため、代入を実行できません。
28 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
hiroaki miyauchi
el 22 de Nov. de 2019
Comentada: hiroaki miyauchi
el 26 de Nov. de 2019
左辺と右辺のサイズが異なるため、計算数値を行列に代入できない。
サイズを合わせようとreshape関数を使ったが、うまくいきません。
また、右辺のサイズが 0x1 であるというエラーメッセージの意味がよくわかりません。
よろしくお願いします。
N = 3;
syms r
x = zeros(N+1,N+1);
for i = 0:N
for j = 0:N
f = besselj(i,r);
x(i+1,j+1) = vpasolve(f,r,[j*pi (j+1)*pi]);
end
end
disp(x)
>> eignvalue
左辺のサイズが 1x1 で右辺のサイズが 0x1 であるため、代入を実行できません。
エラー: eignvalue (line 7)
x(i+1,j+1) = vpasolve(f,r,[j*pi (j+1)*pi]);
0 comentarios
Respuesta aceptada
Más respuestas (1)
Shota Kato
el 25 de Nov. de 2019
右辺のサイズが 0x1 であるというエラーメッセージの意味は,vpasolveによって解が求まっていない,ということです.
vpasolveの返す値は空のオブジェクトなので,行列の要素として代入することはできません.
これでいいかはわかりませんが,解が求まらないときはx(i+1, j+1)に他の値を代入することでプログラムは回るようになります.
N = 3;
syms r
x = zeros(N+1,N+1);
for i = 0:N
for j = 0:N
f = besselj(i,r);
x_ = vpasolve(f,r,[j*pi (j+1)*pi]);
if isempty(x_)
x(i+1, j+1) = nan;
else
x(i+1,j+1) = x_;
end
end
end
disp(x)
>> eignvalue
2.4048 5.5201 8.6537 11.7915
0 3.8317 7.0156 10.1735
0 5.1356 8.4172 11.6198
0 NaN 6.3802 9.7610
Ver también
Categorías
Más información sobre Symbolic Math Toolbox en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!