Using sign function in Matlab
4 ビュー (過去 30 日間)
古いコメントを表示
Hi, I try to run the following in MATLAB:
[D,x] = cheb(N);
D2 = D^2;
D = D(2:N,2:N); D2 = D2(2:N,2:N); x = x(2:N);
A = -1*(sign(x))*D2 + (diag(x))^2;
but I get the following error:
Error using *
Inner matrix dimensions must agree.
Error in airy_demo (line 32)
A = -1*(sign(x))*D2 + (diag(x))^2;
Error in switch_demo (line 52)
mtx = feval(routine,N);
Error in eigtool_switch_fn (line 383)
ps_data = switch_demo(fig,ps_data,the_demo);
Error while evaluating Menu Callback.
This happens only when I use the sign function. Is it given incorrectly? Thanks
0 件のコメント
回答 (1 件)
Tommy
2020 年 5 月 28 日
sign(x) returns a matrix the same size as x. If the dimensions of x (and therefore sign(x)) are N-1 x 1 and the dimensions of D2 are N-1 x N-1, then these dimensions are incompatible for matrix multiplication of sign(x)*D2 (unless N = 2).
D2*sign(x), on the other hand, is valid matrix multiplication and will result in a vector with size N-1 x 1. It looks like you are then adding (diag(x)^2), which has size N-1 x N-1, so I'm not sure D2*sign(x) is what you are looking for.
Can you provide more info on what you are trying to do?
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で LaTeX についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!