Change values using repmat

조회 수: 4 (최근 30일)
Carlos Pérez
Carlos Pérez 2020년 10월 26일
댓글: Ameer Hamza 2020년 10월 26일
Hello everybody,
I have this code
input = '101110'
fs=8000
f0 = 800
duration = 0.1
timeseq=0:1/fs:strlength(input)*duration;
And I want to multiply each 1 of the input and each 0 with the following line.
cos(2*pi*f0*timeseq)
I want to do it without using loops like for, I think I should use fome matlab functions like repmat or repelem but I don't know how they need to be used.
Thank you

채택된 답변

Ameer Hamza
Ameer Hamza 2020년 10월 26일
I think you are trying to do something like this
input = '101110';
input_num = input - '0';
fs=8000;
duration = 0.1;
timeseq=0:1/fs:strlength(input)*duration-1/fs;
tone_frequency = 2;
input_vec = repelem(input_num, 1, fs*duration);
out = cos(2*pi*tone_frequency*timeseq).*input_vec;
  댓글 수: 2
Mireia Boneta Camí
Mireia Boneta Camí 2020년 10월 26일
Hi Ameer, why do you have to put -1/fs in the timeseq?
Ameer Hamza
Ameer Hamza 2020년 10월 26일
So that the number of elements in timeseq are exact multiple of strlength(input)*duration.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by