Matrix dimensions and unbalanced bracket problem
이전 댓글 표시
So I have an electrical signal that is given in this form

I'm trying to execute this script in MATLAB to show it visually
function u=sign_sd(t)
% signal
u = [-0.5*t*10e6 * t((t>=0)&(t<=2e-6)),...
-cos[(pi*10e6*(t-2*10e-6))] * t((t>2)&(t<=4e-6)),...
1 * t((t>4)&(t<=6e-6)),...
0 * t((t>6)&(t<=8e-6)),...
0 * t(t>8e-6)];
.
% signal graph
t=0:1e6:10e6;
u=sign_sd(t);
plot(t,u),grid on
But any way I try to change it, it gives an error.
Error: File: sign_sd.m Line: 5 Column: 9
Unbalanced or unexpected parenthesis or bracket.
Error in sign_g (line 3)
u=sign_sd(t);
.
size(t) = 1 11
size(u) = 1 21
Currently besides unbalanced matrix dimensions problem there are unbalanced brackets. Possibly where -cos starts. Can any give an advice on how to fix it, so it works? I've also tried to use zeros(size(t)) in '% signal graph' code, but that didn't solve it.
댓글 수: 1
madhan ravi
2018년 8월 30일
Try to remove the square brackets only for cos.
채택된 답변
추가 답변 (1개)
Titus Edelhofer
2018년 8월 30일
Hi Jeff,
I would rather use indexing instead of multiplication, something like
u = zeros(size(t));
% first 2 microseconds:
idx = t>=0 & t<=2e-6;
u(idx) = -0.5 * t(idx) * 1e6;
etc.
Titus
카테고리
도움말 센터 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!