| New Reply |
Concatinating signals on Matlab |
Share Thread | Thread Tools |
| Jan31-13, 08:39 PM | #1 |
|
|
Concatinating signals on Matlab
Hiiiiii Everyone ,
It is My First Post ....And I will be Very pleased if You helped me find a solution to my problem . well... It is a Matlab code & I have different type of signals (impulse ,Ramp, sinusoidal,Dc ,exponintial ) & the type of signal is determined by the user ( the user enter a number from 1 to 5) to determine the signal & the user can have multiple selection ..& the user tells me how many time he want to select signals But The Problem i don't Know how to concatenate the signal .. I tried to make it like this A=[]; for i=1:c+1 A=[A y(choice)] end but an error keeps bothering me ??? In an assignment A(I) = B, the number of elements in B and I must be the same. please any one help me.. |
| Jan31-13, 09:38 PM | #2 |
|
Recognitions:
|
So if you are storing the possible signals in vectors m1 m2 etc, and the user constructed vector is a, then, at each selection, you are doing a=[a,m1] (if type 1 was selected).
I think your error means that you have made a mistake in your assignments to do with the vector size. Check that you are concatenating to the right place with the correct orientation. But I suspect it is the y(choice) part ... matlab would see that as an assignment of form A(I)=B you see? i.e. Code:
7> m=magic(4)
m =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
8> a=m(1,:)
a =
16 2 3 13
9> a=[a,m(4,:)]
a =
16 2 3 13 4 14 15 1
10> a=[a,m(:,3)]
error: number of rows must match (4 != 1) near line 10, column 6
10> a=[a;m(3,:)]
error: number of columns must match (4 != 8)
|
| Feb1-13, 01:11 PM | #3 |
|
|
Thanks Monsieur simone For Your Help :)
But That wasnot the point that i was asking about .. You R Right you have to see the code to be able to see the problem c=input('enter the number of break point: '); for n=1:c m(1,k)=input('enter positions of break point:'); k=k+1; end p=[-5 m 3]; % The signal start at -5 & end at 3 & m is the position of the break for k = 1:c+1 t=linspace(p(1,k),p(1,k+1),(p(1,k+1)-p(1,k))*100); % the frequency =100 choice=menu('Choose a type','y(1)','y(2)','y(3)','y(4)','y(5)'); if choice==1 g=p(1,k+1)-p(1,k); y(1)=[4 zeros(1,(g-1))]; end if choice==2 y(2)=5*ones(1,t); end if choice==3 y(3)=3*t+1; end if choice==4 y(4)=3*exp(-2); end if choice==5 y(5)=5*sin(100*t+30); end % Here i want to conatenate all the choosen signals & Plot it With T % But i can't Write the proper code of concatination T=linspace(-5,3,(3+5)*100); A=ones(1,(3+5)*100); end |
| Feb1-13, 07:43 PM | #4 |
|
Recognitions:
|
Concatinating signals on Matlabc=input('enter the number of break point: ');... you have not defined k - change the n to a k or the k to an n. With this change, the output looks like this: Code:
48> sig enter the number of break point: 3 enter positions of break point:0.1 enter positions of break point:0.2 enter positions of break point:2 Choose a type [ 1] y(1) [ 2] y(2) [ 3] y(3) [ 4] y(4) [ 5] y(5) pick a number, any number: 1 error: A(I) = X: X must have the same size as I error: called from: error: /home/simon/sig.m at line 15, column 5 if choice==1consider: what does "y(1)" mean to matlab? - what do you y to look like? if you want y to be a row vector containing the signal, then you can build it as you go. something like: y=[y,[4 zeros(1,(g-1))] ]; That gets rid of the error but there are other problems. Work through your loops by hand - pick c=1 and choose 0 so that p=[-5,0,3] and see what happens. Make sure it's what you want to happen. What happens if the user chooses break point positions out of order? i.e. if c=2, and the first point is 2 and the second is -1? What happens if the user chooses non-integer break point positions? I'm guessing you'll work out how to build a horizontal axis later? ------------------------- [*] Shouldn't that be by Monsieur (Simon) Dupont for French? IIRC: "Simone" is the feminine spelling in French as it is in English so you are kinda implying that you think I'm a girl? Mind you - if I'm an honorary woman then I get to be "right" don't I so... no complaints there ;) It is masculine in Italian though - for "Signor (Simone) Ponte" or something(?) |
| New Reply |
| Thread Tools | |
Similar Threads for: Concatinating signals on Matlab
|
||||
| Thread | Forum | Replies | ||
| MATLAB Filtering Signals? | Engineering, Comp Sci, & Technology Homework | 0 | ||
| Matlab and Signals processing | Electrical Engineering | 2 | ||
| Question about Using the Time Frequency Toolbox for Analysis of Signals (in MATLAB) | Electrical Engineering | 1 | ||
| Matlab plotting discrete time signals | Engineering, Comp Sci, & Technology Homework | 2 | ||
| Matlab Systems and Signals Problem [EE] | Engineering, Comp Sci, & Technology Homework | 0 | ||