Tag Archives: matlab
Is it possible to change color of executed codes for easily identify dead codes
Hi everyone:
I think when taking over large projects, we’ve all encountered the experience where there are sections of code left behind by predecessors that are never executed. However, due to the sheer number of lines of code and the disorganized structure, it’s often difficult to pinpoint the locations of dead code. So, I wanted to ask if there’s a feature in MATLAB that can colorize executed code, making it easy for us to identify dead code by recognizing sections that remain uncolored.Hi everyone:
I think when taking over large projects, we’ve all encountered the experience where there are sections of code left behind by predecessors that are never executed. However, due to the sheer number of lines of code and the disorganized structure, it’s often difficult to pinpoint the locations of dead code. So, I wanted to ask if there’s a feature in MATLAB that can colorize executed code, making it easy for us to identify dead code by recognizing sections that remain uncolored. Hi everyone:
I think when taking over large projects, we’ve all encountered the experience where there are sections of code left behind by predecessors that are never executed. However, due to the sheer number of lines of code and the disorganized structure, it’s often difficult to pinpoint the locations of dead code. So, I wanted to ask if there’s a feature in MATLAB that can colorize executed code, making it easy for us to identify dead code by recognizing sections that remain uncolored. dead code, change color, color MATLAB Answers — New Questions
Can i use the student license as master of science student?
Hello,
As a master of science student, can I use the student license for my master of science degree?
I’ll utilize it for my thesis as well as for the publication of two thesis-related research papers.
Thanks :)Hello,
As a master of science student, can I use the student license for my master of science degree?
I’ll utilize it for my thesis as well as for the publication of two thesis-related research papers.
Thanks 🙂 Hello,
As a master of science student, can I use the student license for my master of science degree?
I’ll utilize it for my thesis as well as for the publication of two thesis-related research papers.
Thanks 🙂 student license MATLAB Answers — New Questions
Enforce Kinematic Constraint in Initial Value Problem ode45()
I have the following non-linear system:
I had originally solved for the displacement of each mass using ode45() (see https://www.mathworks.com/matlabcentral/answers/2107866-find-state-space-representation-of-linearized-non-linear-system-to-find-state-space-representation-i?s_tid=srchtitle). I had set the initial displacement and velocity of each mass to zero as my initial values. My confusion is with how my kinematic constraint (i.e. zero displacement at each wall) is accounted for or enforced in the ode45() solution. Is my ode45() solution valid for the system shown or do I need to form this as a boundary value problem with the boundary conditions as x(0) = 0 and x(l) = 0 instead of an initial value problem as I have done with ode45()? Another reason I bring this up is because my ode45() solver frequently fails after t<10^-5 s when solving. Is this because there are are singularities at the walls that I am not accounting for with my ode45() solution?I have the following non-linear system:
I had originally solved for the displacement of each mass using ode45() (see https://www.mathworks.com/matlabcentral/answers/2107866-find-state-space-representation-of-linearized-non-linear-system-to-find-state-space-representation-i?s_tid=srchtitle). I had set the initial displacement and velocity of each mass to zero as my initial values. My confusion is with how my kinematic constraint (i.e. zero displacement at each wall) is accounted for or enforced in the ode45() solution. Is my ode45() solution valid for the system shown or do I need to form this as a boundary value problem with the boundary conditions as x(0) = 0 and x(l) = 0 instead of an initial value problem as I have done with ode45()? Another reason I bring this up is because my ode45() solver frequently fails after t<10^-5 s when solving. Is this because there are are singularities at the walls that I am not accounting for with my ode45() solution? I have the following non-linear system:
I had originally solved for the displacement of each mass using ode45() (see https://www.mathworks.com/matlabcentral/answers/2107866-find-state-space-representation-of-linearized-non-linear-system-to-find-state-space-representation-i?s_tid=srchtitle). I had set the initial displacement and velocity of each mass to zero as my initial values. My confusion is with how my kinematic constraint (i.e. zero displacement at each wall) is accounted for or enforced in the ode45() solution. Is my ode45() solution valid for the system shown or do I need to form this as a boundary value problem with the boundary conditions as x(0) = 0 and x(l) = 0 instead of an initial value problem as I have done with ode45()? Another reason I bring this up is because my ode45() solver frequently fails after t<10^-5 s when solving. Is this because there are are singularities at the walls that I am not accounting for with my ode45() solution? matlab, ode, ode45, matlab code, solve, model, system, nonlinear MATLAB Answers — New Questions
Unable to fully filter out a tone with a notch filter.
I am working on coding a matlab notch filter that is supposed to fitler out a tone in the audio file listed in the code. The Notch Filter works as it is supposed to except at the very beginning and at the very end the tone is still there and not filtered out and I need to have the tone completely gone. I am unable to figure out what to change in my code I have tried changing the frequencies I have tried changing where my filter starts and my notch width but nothing has solved my issue. Any help or suggestions is appreciated Thanks!
Code here below
% Load input sound
[Sound, fs] = audioread(‘SunshineSquare.wav’);
figure(1);
% Plot specgram of input sound
specgram(Sound, 512, fs);
title(‘Spectrogram of Input Sound (SunshineSquare.wav)’);
% Parameters of Notch Filter
frequencies = [1574.99, 3149.97, 4724.96];
notchwidth = 10;
% Tone Removal
a_total = 1;
b_total = 1;
for i = 1:length(frequencies)
Wn = [(frequencies(i) – notchwidth/2) / (fs/2), (frequencies(i) + notchwidth/2) / (fs/2)];
Wn = max(min(Wn, 0.99), 0.01);
[b, a] = butter(2, Wn, ‘stop’);
b_total = conv(b_total, b);
a_total = conv(a_total, a);
end
filteredAudio = filter(b_total, a_total, Sound);
% Play filtered sound
soundsc(filteredAudio, fs);
figure(2);
% Plot specgram of output sound after using notch filter
specgram(filteredAudio, 512, fs);
title(‘Specgram after Notch Filter’);
% Plot SunshineSquare sound
figure(3);
t = (0:length(Sound)-1)/fs;
plot(t, Sound);
xlabel(‘Time (sec)’);
ylabel(‘Amplitude’);
title(‘Notch-Filtered SunshineSquare Sound Plot’);
figure(4);
plot (ww,abs(HH));
zplane(bb,aa)
xlabel(‘Real’);
ylabel(‘Imaginary’);
title(‘Magnitude IIR Frequency Response (Z-Plane)’);
grid on
figure(5);
% Plot Notch-filtered sound
t = (0:length(Sound)-1)/fs;
plot(t, filteredAudio);
xlabel(‘Time (sec)’);
ylabel(‘Amplitude’);
title(‘Notch-Filtered Z-Plot’);
figure(6);
sgtitle(‘Redo Tone Removal Step 2: Magnitude Response for Notch Filter’);
f1 = 1574.99/fs * 2 * pi;
f2 = 3149.97/fs * 2 * pi;
f3 = 4724.96/fs * 2 * pi;
% Plot nulling filter frequency response and Z-plane representation
ww = -pi:pi/100:pi;
HH = freqz(bb,aa,ww);
bb = poly([exp(1j*f1) exp(-1j*f1) exp(1j*f2) exp(-1j*f2) exp(1j*f3) exp(-1j*f3)]);
aa = poly(0.80*[exp(1j*f1) exp(-1j*f1) exp(1j*f2) exp(-1j*f2) exp(1j*f3) exp(-1j*f3)]);
y = filteredAudio;
% Display the nulling filter frequency response
subplot(1,1,1);
plot(ww, abs(HH));
title(‘Notch Filter Frequency Response’);
xlabel(‘Frequency (Hz)’);
ylabel(‘Magnitude’);
fout = filter(bb,aa,y);
% Calculate the DC gain of the IIR Notch filter
ww_low = -pi:pi/10000:pi; % Frequencies close to zero
HH_low = freqz(b_total, a_total, ww_low, fs);
% Display the DC gain
dc_gain_iir = abs(HH_low(1));
disp([‘DC Gain of IIR Notch Filter: ‘, num2str(dc_gain_iir)]);
Specgrams of the input and output of the file from matlab for reference are attached.I am working on coding a matlab notch filter that is supposed to fitler out a tone in the audio file listed in the code. The Notch Filter works as it is supposed to except at the very beginning and at the very end the tone is still there and not filtered out and I need to have the tone completely gone. I am unable to figure out what to change in my code I have tried changing the frequencies I have tried changing where my filter starts and my notch width but nothing has solved my issue. Any help or suggestions is appreciated Thanks!
Code here below
% Load input sound
[Sound, fs] = audioread(‘SunshineSquare.wav’);
figure(1);
% Plot specgram of input sound
specgram(Sound, 512, fs);
title(‘Spectrogram of Input Sound (SunshineSquare.wav)’);
% Parameters of Notch Filter
frequencies = [1574.99, 3149.97, 4724.96];
notchwidth = 10;
% Tone Removal
a_total = 1;
b_total = 1;
for i = 1:length(frequencies)
Wn = [(frequencies(i) – notchwidth/2) / (fs/2), (frequencies(i) + notchwidth/2) / (fs/2)];
Wn = max(min(Wn, 0.99), 0.01);
[b, a] = butter(2, Wn, ‘stop’);
b_total = conv(b_total, b);
a_total = conv(a_total, a);
end
filteredAudio = filter(b_total, a_total, Sound);
% Play filtered sound
soundsc(filteredAudio, fs);
figure(2);
% Plot specgram of output sound after using notch filter
specgram(filteredAudio, 512, fs);
title(‘Specgram after Notch Filter’);
% Plot SunshineSquare sound
figure(3);
t = (0:length(Sound)-1)/fs;
plot(t, Sound);
xlabel(‘Time (sec)’);
ylabel(‘Amplitude’);
title(‘Notch-Filtered SunshineSquare Sound Plot’);
figure(4);
plot (ww,abs(HH));
zplane(bb,aa)
xlabel(‘Real’);
ylabel(‘Imaginary’);
title(‘Magnitude IIR Frequency Response (Z-Plane)’);
grid on
figure(5);
% Plot Notch-filtered sound
t = (0:length(Sound)-1)/fs;
plot(t, filteredAudio);
xlabel(‘Time (sec)’);
ylabel(‘Amplitude’);
title(‘Notch-Filtered Z-Plot’);
figure(6);
sgtitle(‘Redo Tone Removal Step 2: Magnitude Response for Notch Filter’);
f1 = 1574.99/fs * 2 * pi;
f2 = 3149.97/fs * 2 * pi;
f3 = 4724.96/fs * 2 * pi;
% Plot nulling filter frequency response and Z-plane representation
ww = -pi:pi/100:pi;
HH = freqz(bb,aa,ww);
bb = poly([exp(1j*f1) exp(-1j*f1) exp(1j*f2) exp(-1j*f2) exp(1j*f3) exp(-1j*f3)]);
aa = poly(0.80*[exp(1j*f1) exp(-1j*f1) exp(1j*f2) exp(-1j*f2) exp(1j*f3) exp(-1j*f3)]);
y = filteredAudio;
% Display the nulling filter frequency response
subplot(1,1,1);
plot(ww, abs(HH));
title(‘Notch Filter Frequency Response’);
xlabel(‘Frequency (Hz)’);
ylabel(‘Magnitude’);
fout = filter(bb,aa,y);
% Calculate the DC gain of the IIR Notch filter
ww_low = -pi:pi/10000:pi; % Frequencies close to zero
HH_low = freqz(b_total, a_total, ww_low, fs);
% Display the DC gain
dc_gain_iir = abs(HH_low(1));
disp([‘DC Gain of IIR Notch Filter: ‘, num2str(dc_gain_iir)]);
Specgrams of the input and output of the file from matlab for reference are attached. I am working on coding a matlab notch filter that is supposed to fitler out a tone in the audio file listed in the code. The Notch Filter works as it is supposed to except at the very beginning and at the very end the tone is still there and not filtered out and I need to have the tone completely gone. I am unable to figure out what to change in my code I have tried changing the frequencies I have tried changing where my filter starts and my notch width but nothing has solved my issue. Any help or suggestions is appreciated Thanks!
Code here below
% Load input sound
[Sound, fs] = audioread(‘SunshineSquare.wav’);
figure(1);
% Plot specgram of input sound
specgram(Sound, 512, fs);
title(‘Spectrogram of Input Sound (SunshineSquare.wav)’);
% Parameters of Notch Filter
frequencies = [1574.99, 3149.97, 4724.96];
notchwidth = 10;
% Tone Removal
a_total = 1;
b_total = 1;
for i = 1:length(frequencies)
Wn = [(frequencies(i) – notchwidth/2) / (fs/2), (frequencies(i) + notchwidth/2) / (fs/2)];
Wn = max(min(Wn, 0.99), 0.01);
[b, a] = butter(2, Wn, ‘stop’);
b_total = conv(b_total, b);
a_total = conv(a_total, a);
end
filteredAudio = filter(b_total, a_total, Sound);
% Play filtered sound
soundsc(filteredAudio, fs);
figure(2);
% Plot specgram of output sound after using notch filter
specgram(filteredAudio, 512, fs);
title(‘Specgram after Notch Filter’);
% Plot SunshineSquare sound
figure(3);
t = (0:length(Sound)-1)/fs;
plot(t, Sound);
xlabel(‘Time (sec)’);
ylabel(‘Amplitude’);
title(‘Notch-Filtered SunshineSquare Sound Plot’);
figure(4);
plot (ww,abs(HH));
zplane(bb,aa)
xlabel(‘Real’);
ylabel(‘Imaginary’);
title(‘Magnitude IIR Frequency Response (Z-Plane)’);
grid on
figure(5);
% Plot Notch-filtered sound
t = (0:length(Sound)-1)/fs;
plot(t, filteredAudio);
xlabel(‘Time (sec)’);
ylabel(‘Amplitude’);
title(‘Notch-Filtered Z-Plot’);
figure(6);
sgtitle(‘Redo Tone Removal Step 2: Magnitude Response for Notch Filter’);
f1 = 1574.99/fs * 2 * pi;
f2 = 3149.97/fs * 2 * pi;
f3 = 4724.96/fs * 2 * pi;
% Plot nulling filter frequency response and Z-plane representation
ww = -pi:pi/100:pi;
HH = freqz(bb,aa,ww);
bb = poly([exp(1j*f1) exp(-1j*f1) exp(1j*f2) exp(-1j*f2) exp(1j*f3) exp(-1j*f3)]);
aa = poly(0.80*[exp(1j*f1) exp(-1j*f1) exp(1j*f2) exp(-1j*f2) exp(1j*f3) exp(-1j*f3)]);
y = filteredAudio;
% Display the nulling filter frequency response
subplot(1,1,1);
plot(ww, abs(HH));
title(‘Notch Filter Frequency Response’);
xlabel(‘Frequency (Hz)’);
ylabel(‘Magnitude’);
fout = filter(bb,aa,y);
% Calculate the DC gain of the IIR Notch filter
ww_low = -pi:pi/10000:pi; % Frequencies close to zero
HH_low = freqz(b_total, a_total, ww_low, fs);
% Display the DC gain
dc_gain_iir = abs(HH_low(1));
disp([‘DC Gain of IIR Notch Filter: ‘, num2str(dc_gain_iir)]);
Specgrams of the input and output of the file from matlab for reference are attached. matlab MATLAB Answers — New Questions
what is this errol
Error(s) encountered while building simulation target MEX-file for model ‘TEST’.
Caused by:
Microsoft (R) Program Maintenance Utility Version 14.39.33523.0 Copyright (C) Microsoft Corporation. All rights reserved. ### Compiling "TEST_cgxe.c" cl.exe /c /Zp8 /GR /w /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMX_COMPAT_64 /DMATLAB_MEXCMD_RELEASE=R2018a /DMATLAB_MEX_FILE /nologo /MD /I "D:Program FilesMATLABR2024aexterninclude" /I "D:Program FilesMATLABR2024asimulinkinclude" /I "D:Program FilesMATLABR2024artwcsrc" /I "D:downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "C:UsersASUSdocumentsMATLAB" /I "D:downloadssimu_lik1" /I "D:Downloadssimu_lik1slprjslprj_cprj" /I "D:Downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "D:Downloadssimu_lik1slprj" "TEST_cgxe.c" TEST_cgxe.c ### Compiling "TEST_cgxe_registry.c" cl.exe /c /Zp8 /GR /w /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMX_COMPAT_64 /DMATLAB_MEXCMD_RELEASE=R2018a /DMATLAB_MEX_FILE /nologo /MD /I "D:Program FilesMATLABR2024aexterninclude" /I "D:Program FilesMATLABR2024asimulinkinclude" /I "D:Program FilesMATLABR2024artwcsrc" /I "D:downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "C:UsersASUSdocumentsMATLAB" /I "D:downloadssimu_lik1" /I "D:Downloadssimu_lik1slprjslprj_cprj" /I "D:Downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "D:Downloadssimu_lik1slprj" "TEST_cgxe_registry.c" TEST_cgxe_registry.c ### Compiling "m_sTa6ArGkvwlqBJMSyhiANF.c" cl.exe /c /Zp8 /GR /w /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMX_COMPAT_64 /DMATLAB_MEXCMD_RELEASE=R2018a /DMATLAB_MEX_FILE /nologo /MD /I "D:Program FilesMATLABR2024aexterninclude" /I "D:Program FilesMATLABR2024asimulinkinclude" /I "D:Program FilesMATLABR2024artwcsrc" /I "D:downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "C:UsersASUSdocumentsMATLAB" /I "D:downloadssimu_lik1" /I "D:Downloadssimu_lik1slprjslprj_cprj" /I "D:Downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "D:Downloadssimu_lik1slprj" "m_sTa6ArGkvwlqBJMSyhiANF.c" m_sTa6ArGkvwlqBJMSyhiANF.c NMAKE : fatal error U1073: don’t know how to make ‘D:Program’ Stop.Error(s) encountered while building simulation target MEX-file for model ‘TEST’.
Caused by:
Microsoft (R) Program Maintenance Utility Version 14.39.33523.0 Copyright (C) Microsoft Corporation. All rights reserved. ### Compiling "TEST_cgxe.c" cl.exe /c /Zp8 /GR /w /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMX_COMPAT_64 /DMATLAB_MEXCMD_RELEASE=R2018a /DMATLAB_MEX_FILE /nologo /MD /I "D:Program FilesMATLABR2024aexterninclude" /I "D:Program FilesMATLABR2024asimulinkinclude" /I "D:Program FilesMATLABR2024artwcsrc" /I "D:downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "C:UsersASUSdocumentsMATLAB" /I "D:downloadssimu_lik1" /I "D:Downloadssimu_lik1slprjslprj_cprj" /I "D:Downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "D:Downloadssimu_lik1slprj" "TEST_cgxe.c" TEST_cgxe.c ### Compiling "TEST_cgxe_registry.c" cl.exe /c /Zp8 /GR /w /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMX_COMPAT_64 /DMATLAB_MEXCMD_RELEASE=R2018a /DMATLAB_MEX_FILE /nologo /MD /I "D:Program FilesMATLABR2024aexterninclude" /I "D:Program FilesMATLABR2024asimulinkinclude" /I "D:Program FilesMATLABR2024artwcsrc" /I "D:downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "C:UsersASUSdocumentsMATLAB" /I "D:downloadssimu_lik1" /I "D:Downloadssimu_lik1slprjslprj_cprj" /I "D:Downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "D:Downloadssimu_lik1slprj" "TEST_cgxe_registry.c" TEST_cgxe_registry.c ### Compiling "m_sTa6ArGkvwlqBJMSyhiANF.c" cl.exe /c /Zp8 /GR /w /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMX_COMPAT_64 /DMATLAB_MEXCMD_RELEASE=R2018a /DMATLAB_MEX_FILE /nologo /MD /I "D:Program FilesMATLABR2024aexterninclude" /I "D:Program FilesMATLABR2024asimulinkinclude" /I "D:Program FilesMATLABR2024artwcsrc" /I "D:downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "C:UsersASUSdocumentsMATLAB" /I "D:downloadssimu_lik1" /I "D:Downloadssimu_lik1slprjslprj_cprj" /I "D:Downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "D:Downloadssimu_lik1slprj" "m_sTa6ArGkvwlqBJMSyhiANF.c" m_sTa6ArGkvwlqBJMSyhiANF.c NMAKE : fatal error U1073: don’t know how to make ‘D:Program’ Stop. Error(s) encountered while building simulation target MEX-file for model ‘TEST’.
Caused by:
Microsoft (R) Program Maintenance Utility Version 14.39.33523.0 Copyright (C) Microsoft Corporation. All rights reserved. ### Compiling "TEST_cgxe.c" cl.exe /c /Zp8 /GR /w /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMX_COMPAT_64 /DMATLAB_MEXCMD_RELEASE=R2018a /DMATLAB_MEX_FILE /nologo /MD /I "D:Program FilesMATLABR2024aexterninclude" /I "D:Program FilesMATLABR2024asimulinkinclude" /I "D:Program FilesMATLABR2024artwcsrc" /I "D:downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "C:UsersASUSdocumentsMATLAB" /I "D:downloadssimu_lik1" /I "D:Downloadssimu_lik1slprjslprj_cprj" /I "D:Downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "D:Downloadssimu_lik1slprj" "TEST_cgxe.c" TEST_cgxe.c ### Compiling "TEST_cgxe_registry.c" cl.exe /c /Zp8 /GR /w /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMX_COMPAT_64 /DMATLAB_MEXCMD_RELEASE=R2018a /DMATLAB_MEX_FILE /nologo /MD /I "D:Program FilesMATLABR2024aexterninclude" /I "D:Program FilesMATLABR2024asimulinkinclude" /I "D:Program FilesMATLABR2024artwcsrc" /I "D:downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "C:UsersASUSdocumentsMATLAB" /I "D:downloadssimu_lik1" /I "D:Downloadssimu_lik1slprjslprj_cprj" /I "D:Downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "D:Downloadssimu_lik1slprj" "TEST_cgxe_registry.c" TEST_cgxe_registry.c ### Compiling "m_sTa6ArGkvwlqBJMSyhiANF.c" cl.exe /c /Zp8 /GR /w /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMX_COMPAT_64 /DMATLAB_MEXCMD_RELEASE=R2018a /DMATLAB_MEX_FILE /nologo /MD /I "D:Program FilesMATLABR2024aexterninclude" /I "D:Program FilesMATLABR2024asimulinkinclude" /I "D:Program FilesMATLABR2024artwcsrc" /I "D:downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "C:UsersASUSdocumentsMATLAB" /I "D:downloadssimu_lik1" /I "D:Downloadssimu_lik1slprjslprj_cprj" /I "D:Downloadssimu_lik1slprjslprj_cgxeTESTsrc" /I "D:Downloadssimu_lik1slprj" "m_sTa6ArGkvwlqBJMSyhiANF.c" m_sTa6ArGkvwlqBJMSyhiANF.c NMAKE : fatal error U1073: don’t know how to make ‘D:Program’ Stop. fatal error u1073: don’t know how to make ‘d:pro MATLAB Answers — New Questions
While Loop not running
The following is while loop code that I have written for a project. No errors are popping up when and everything with the code appears to be fine but it never actually completes running. I am very stuck and would greatly appreciate some help. Here is my code:
i=3;
while i <= length(Datamatrix)
if isTwoInsideDays == true
L_entry_price = prevInsideDayHigh(i) + 0.0010;
L_stop_loss = prevInsideDayLow(i) – 0.0010; % Stop 10 pips below
L_take_profit = L_entry_price + 2 * (L_stop_loss – L_entry_price);
i=i+1;
while Close>L_entry_price==false;
i=i+1;
end
Signal(i)=1;
i=i+1;
while (Close(i) > L_take_profit || Close(i) < L_stop_loss) == false
i=i+1;
end
Signal(i)=-1;
end
endThe following is while loop code that I have written for a project. No errors are popping up when and everything with the code appears to be fine but it never actually completes running. I am very stuck and would greatly appreciate some help. Here is my code:
i=3;
while i <= length(Datamatrix)
if isTwoInsideDays == true
L_entry_price = prevInsideDayHigh(i) + 0.0010;
L_stop_loss = prevInsideDayLow(i) – 0.0010; % Stop 10 pips below
L_take_profit = L_entry_price + 2 * (L_stop_loss – L_entry_price);
i=i+1;
while Close>L_entry_price==false;
i=i+1;
end
Signal(i)=1;
i=i+1;
while (Close(i) > L_take_profit || Close(i) < L_stop_loss) == false
i=i+1;
end
Signal(i)=-1;
end
end The following is while loop code that I have written for a project. No errors are popping up when and everything with the code appears to be fine but it never actually completes running. I am very stuck and would greatly appreciate some help. Here is my code:
i=3;
while i <= length(Datamatrix)
if isTwoInsideDays == true
L_entry_price = prevInsideDayHigh(i) + 0.0010;
L_stop_loss = prevInsideDayLow(i) – 0.0010; % Stop 10 pips below
L_take_profit = L_entry_price + 2 * (L_stop_loss – L_entry_price);
i=i+1;
while Close>L_entry_price==false;
i=i+1;
end
Signal(i)=1;
i=i+1;
while (Close(i) > L_take_profit || Close(i) < L_stop_loss) == false
i=i+1;
end
Signal(i)=-1;
end
end while loop MATLAB Answers — New Questions
Small Signal Stability analysis using Single Machine Infinite Bus system
How do I set up state variables, input and output for my SMIB model on simulink so that I can be able to linearise it for eigenvalue analysis?How do I set up state variables, input and output for my SMIB model on simulink so that I can be able to linearise it for eigenvalue analysis? How do I set up state variables, input and output for my SMIB model on simulink so that I can be able to linearise it for eigenvalue analysis? small signal stability MATLAB Answers — New Questions
I am struggling trying to figure out this code I have it completed but I keep getting errors, can you help?
load(‘eegdata.mat’);
data = eegdata;
srate = 500;
N = size(data, 2); % Length of data on a channel; total number of data points
nchans = size(data, 1) ; % Number of channels, which is the size of the first dim of ‘data’
time = (0:N-1) / srate; % Time vector
ntrials = 10; % Number of trials
% Lowpass Filter ————–
% You will create the gaussian kernel here for low-pass filtering. Use
% a steepness value of 0.5 and kernel length of 15.
steepness = 0.5; % kernel steepness
kernelLength = 15; % kernel length
incr = 2*steepness/(kernelLength-1);
kernel = exp(-(-steepness:incr:steepness).^2);
kernel = kernel./sum(kernel); % normalize kernel
% Filtering
% Use a loop to go through the data on each channel and
% use the ‘conv’ function to convolve the data with the gaussian
% kernel you created above. Ensure that the output has the same
% length as the input data, using the ‘same’ option. The fdata matrix
% will store the filtered data.
for i = 1:nchans
fdata(i,:) = conv(data(i,:), kernel, ‘same’);
end
% FIGURE 1: Plot Raw and Filtered Channel Data
% Plot the raw and filtered data (‘data’ and ‘fdata’) for each channel
% separately, in the first and second columns. Modify the x/y labels and
% the plot titles as shown in the figure in the question prompt.
figure(‘Name’, ‘Channel Data’)
for i = 1:nchans
subplot(nchans, 2, (i-1)*2 + 1)
plot(time, data(i,:))
xlabel(‘Time (s)’)
ylabel(‘Amplitude’)
title([‘Raw Data – Channel ‘, num2str(i)])
subplot(nchans, 2, (i-1)*2 + 2)
plot(time, fdata(i,:))
xlabel(‘Time (s)’)
ylabel(‘Amplitude’)
title([‘Filtered Data – Channel ‘, num2str(i)])
end
% Epoch data ————–
% Epoch the data into epochs using the ‘reshape’ function.
% The number of epochs (trials) are indicated by the ‘ntrials’ variable.
% Data in each channel should be divided into ‘ntrials’ epochs and
% the resulting data should be stored in the ‘efdata’ matrix.
% The ‘efdata’ is a 3-dimensional matrix; with channels, data points, and trials
% as the dimensions, respectively.
efdata= reshape(fdata,nchans,[],ntrials);
% Average data across the epochs
% Calculate the mean data for each channel.
% You should take the average of all trials, separately for each channel.
% The ‘mean’ function allows you to indicate over which dimension
% should the mean be calculated. You should take the mean over trials.
mefdata = mean(efdata, 3);
eN = size(efdata, 2); % Calculate the length of a single epoch (number of data points in an epoch)
etime = 0:1/srate:(eN/srate)-1/srate; % Create the time vector for a single epoch
% Taper averaged epochs ————–
% As we discussed in class, edges in epoched data cause artifacts in
% frequency analysis. To avoid this problem, we will taper the data with
% a Hann window. Use the ‘hann’ function to create a hann window
% at the lenght of an epoch (you will need to transpose the output),
% then multiply the hann window with the averaged
% epoched data (‘mefdata’). Remember, this is an element-wise
% multiplication, meaning that each point in the hann window will be
% multiplied with the matching point in the data, separately for each
% channel (use ‘.*’). Store the tapered data matrix in ‘tmefdata’/
hanntaper = hann(eN); % Use the hann function and ‘eN’ as length. Transpose as well.
tmefdata = ‘mean(efdata, 3)’ .* ‘hann(eN)’ ; % multiply the mefdata with hanntaper. Use element-wise multiplication ‘.*’
% Frequency Analysis ————–
% Before you conduct the frequency analysis, go to the bottom of the script
% and follow the instructions to complete the ‘myFourier’ function. Once
% done, come back here to continue.
% Go through each channel and calculate the frequencies and powers for both
% the untapered (mefdata) and tapered (tmefdata) data.
for i=1:nchans
[mef_freqs(i,:),mef_pows(i,:)] = myFourier(mefdata(i,:)); % Left side is already done, complete the right side
[tmef_freqs(i,:),tmef_pows(i,:)] = myFourier(tmefdata(i,:)); % Left side is already done, complete the right side
end
% Time-Frequency Analysis————–
% Before you conduct the time-frequency analysis, go to the bottom of the
% script and follow the instructions to complete the ‘myMorlet’ function.
% Once done, come back here to continue.
% Let’s say we are interested in frequencies between 0 and 40 Hz
minFreq = 0;
maxFreq = 40;
% Calculate the frequency vectors and matching power values over time using
% the ‘myMorlet’ function. Remember, we don’t use the epoched data for frequency analysis
% First use the continous filtered data, ‘fdata’ for the transformation to
% the time-frequency domain, then epoch the t-f data.
for i=1:nchans
[tf_freqs{i}, tf_pows{i}] = myMorlet(fdata(i,:), srate, minFreq, maxFreq); % Only complete the right side. Use ‘fdata’, ‘srate’, ‘minFreq’ and ‘maxFreq’ inside myMorlet
end
nfreqs = size(tf_freqs{1},1); % The number of frequencies
etf_pows = zeros(nchans, nfreqs, eN, ntrials); % Initiate matrix for epoched t-f data
metf_pows = zeros(nchans, nfreqs, eN); % Initiate matrix for averaged epoched t-f data
% Epoch the t-f data and calculate the mean t-f data
% This part is already done, though inspect it to see how it was done
for i = 1:nchans % calculate etf_pows and metf_pows
etf_pows(i,:,:,:) = reshape(tf_pows{i}, nfreqs,[], ntrials);
metf_pows(i,:,:) = squeeze(mean(etf_pows(i,:,:,:),4));
end
% Plots
nC = 4; % Number of types of plots
% FIGURE 2
figure(‘Name’,’Analysis Results’, ‘Position’, [10 200 900 nC*200]) % Create figure 2, adjust its size
% Here you will create Figure 2, where averaged TD (time-domain), averaged untapered FD (frequency-domain),
% averaged Tapered FD, and the averaged TF (time-frequency domain) data are plotted, separately for each channel
% Use subplots in the loop to create the figure. The figure created should
% look like the one in the question (Figure 2).
for i = 1:nchans
subplot(nchans, nC, (i-1)*nC + 1) % Use ‘nchans’ and ‘nC’ variables to adjust the indices
plot(etime,mefdata(i,:)) % Plot epoch time vs mean epoched, filtered data.
title(‘Averaged Signal TD’)
xlim([min(etime), max(etime)]) % Use min and max etime for the range of x values
ylabel([‘Channel ‘, num2str(i)]) % The ylabel should show the channel number (see Fig. 2 in the question)
subplot(nchans, nC, (i-1)*nC + 2) % Use ‘nchans’ and ‘nC’ variables to adjust the indices
plot(tf_freqs{i}, tf_pows{i}) % Plots freqs vs pows for untapered data
title(‘Avg. Signal FD’)
xlim([minFreq, maxFreq]) % Use minFreq and maxFreq as limits
subplot(nchans, nC, (i-1)*nC + 3) % Use ‘nchans’ and ‘nC’ variables to adjust the indices
plot(tf_freqs{i}, tmefdata(i, :)) % Plots freqs vs pows for tapered data
title(‘Avg. Tapered Signal FD’)
xlim([minFreq, maxFreq]) % Use minFreq and maxFreq as limits
subplot(nchans,nC,(i-1)*nC + 4);
% Use etime, tf_freqs, and metf_pows for the contourf plot. Be careful
% about whether you use () or {} and the indices. Consider using the
% squeeze function as well. Number of contour levels is already set as
% 40, and ‘linecolor’ is set to ‘none’.
contourf(etime, squeeze(tf_freqs{i}), squeeze(metf_pows(i, :, :)),40,’linecolor’,’none’)
title(‘Signal TF’)
end
% Coherence Analysis
% Here you will study the coherence in the signal between pairs of
% channels.
% Initialize the cell array to store coherence results
cohRes = cell(nchans, nchans);
% FIGURE 3
figure(‘Name’,’Coherence Analysis’, ‘Position’, [10 200 800 800])
% Loop over each pair of channels
for i = 1:nchans
for j = (i+1):nchans
% Extract data for the current channel pair
chanA_data = data(i, :);
chanB_data = data(j, :);
% Perform spectral coherence analysis
% Check the ‘mscohere’ documentation. Use chanA_data and chanB_data
% for the two signals. Use the default window and nooverlap values
% (just put ‘[]’ to use the default values). Check frequencies 0 to
% 40. Use srate for the sampling rate.
[cohVals, cohFreqs] = mscohere(chanA_data, chanB_data, [], [], 0:40, srate);
% Store coherence results in the cell array
cohRes{i, j} = cohVals;
% Plot coherence results in subplots
subplot(nchans, nchans, (i-1)*nchans + j); % Cool indexing magic here
plot(cohFreqs, cohVals); % Plot coherence frequencies vs coherence values
xlabel(‘Frequency (Hz)’);
ylabel(‘Coherence’);
title([‘Chan. ‘, num2str(i), ‘ & ‘, num2str(j)]);
end
end
% My Fourier Transform Function
% The ‘myFourier’ function takes the signal and sampling rate as inputs
% and produces a vector frequencies and a vector of matching power values
% Use the ‘fft’ function to calculate the Fouerier coefficients.
function [freqs, pows] = myFourier(signal,srate)
n = length(signal); % length of signal
freqs = linspace(0, srate/2, n/2+1); % frequency vector
signalx = fft(signal); % conduct fft with the signal
pows = abs(signalx(1:n/2+1)).^2; % calculate power values based on the coefficients
end
% Morlet Convolution
% The ‘myMorlet’ function takes the signal, sampling rate, and min & max
% frequencies as inputs, and outputs the frequencies and matching powers
% over the time series. Use Matlab’s ‘cwt’ function with the ‘amor’ option
% to conduct a Morlet wavelet transofrmation. Use the ‘FrequencyLimits’
% option with ‘minFreq’ and ‘maxFreq’ as limits. Check the ‘cwt’
% documentation for info on how to use these options.
function [freqs, pows] = myMorlet(signal,srate,minFreq,maxFreq)
[coefs, freqs] = cwt(signal, ‘amor’, srate, ‘FrequencyLimits’, [minFreq, maxFreq]); % Use the ‘cwt’ function with the ‘amor’ option to calculate the coefficients and frequencies
pows =abs(coefs).^2; % Use the ‘abs’ function to calculate ampltitudes from ‘coefs’ and take its square to calculate power
endload(‘eegdata.mat’);
data = eegdata;
srate = 500;
N = size(data, 2); % Length of data on a channel; total number of data points
nchans = size(data, 1) ; % Number of channels, which is the size of the first dim of ‘data’
time = (0:N-1) / srate; % Time vector
ntrials = 10; % Number of trials
% Lowpass Filter ————–
% You will create the gaussian kernel here for low-pass filtering. Use
% a steepness value of 0.5 and kernel length of 15.
steepness = 0.5; % kernel steepness
kernelLength = 15; % kernel length
incr = 2*steepness/(kernelLength-1);
kernel = exp(-(-steepness:incr:steepness).^2);
kernel = kernel./sum(kernel); % normalize kernel
% Filtering
% Use a loop to go through the data on each channel and
% use the ‘conv’ function to convolve the data with the gaussian
% kernel you created above. Ensure that the output has the same
% length as the input data, using the ‘same’ option. The fdata matrix
% will store the filtered data.
for i = 1:nchans
fdata(i,:) = conv(data(i,:), kernel, ‘same’);
end
% FIGURE 1: Plot Raw and Filtered Channel Data
% Plot the raw and filtered data (‘data’ and ‘fdata’) for each channel
% separately, in the first and second columns. Modify the x/y labels and
% the plot titles as shown in the figure in the question prompt.
figure(‘Name’, ‘Channel Data’)
for i = 1:nchans
subplot(nchans, 2, (i-1)*2 + 1)
plot(time, data(i,:))
xlabel(‘Time (s)’)
ylabel(‘Amplitude’)
title([‘Raw Data – Channel ‘, num2str(i)])
subplot(nchans, 2, (i-1)*2 + 2)
plot(time, fdata(i,:))
xlabel(‘Time (s)’)
ylabel(‘Amplitude’)
title([‘Filtered Data – Channel ‘, num2str(i)])
end
% Epoch data ————–
% Epoch the data into epochs using the ‘reshape’ function.
% The number of epochs (trials) are indicated by the ‘ntrials’ variable.
% Data in each channel should be divided into ‘ntrials’ epochs and
% the resulting data should be stored in the ‘efdata’ matrix.
% The ‘efdata’ is a 3-dimensional matrix; with channels, data points, and trials
% as the dimensions, respectively.
efdata= reshape(fdata,nchans,[],ntrials);
% Average data across the epochs
% Calculate the mean data for each channel.
% You should take the average of all trials, separately for each channel.
% The ‘mean’ function allows you to indicate over which dimension
% should the mean be calculated. You should take the mean over trials.
mefdata = mean(efdata, 3);
eN = size(efdata, 2); % Calculate the length of a single epoch (number of data points in an epoch)
etime = 0:1/srate:(eN/srate)-1/srate; % Create the time vector for a single epoch
% Taper averaged epochs ————–
% As we discussed in class, edges in epoched data cause artifacts in
% frequency analysis. To avoid this problem, we will taper the data with
% a Hann window. Use the ‘hann’ function to create a hann window
% at the lenght of an epoch (you will need to transpose the output),
% then multiply the hann window with the averaged
% epoched data (‘mefdata’). Remember, this is an element-wise
% multiplication, meaning that each point in the hann window will be
% multiplied with the matching point in the data, separately for each
% channel (use ‘.*’). Store the tapered data matrix in ‘tmefdata’/
hanntaper = hann(eN); % Use the hann function and ‘eN’ as length. Transpose as well.
tmefdata = ‘mean(efdata, 3)’ .* ‘hann(eN)’ ; % multiply the mefdata with hanntaper. Use element-wise multiplication ‘.*’
% Frequency Analysis ————–
% Before you conduct the frequency analysis, go to the bottom of the script
% and follow the instructions to complete the ‘myFourier’ function. Once
% done, come back here to continue.
% Go through each channel and calculate the frequencies and powers for both
% the untapered (mefdata) and tapered (tmefdata) data.
for i=1:nchans
[mef_freqs(i,:),mef_pows(i,:)] = myFourier(mefdata(i,:)); % Left side is already done, complete the right side
[tmef_freqs(i,:),tmef_pows(i,:)] = myFourier(tmefdata(i,:)); % Left side is already done, complete the right side
end
% Time-Frequency Analysis————–
% Before you conduct the time-frequency analysis, go to the bottom of the
% script and follow the instructions to complete the ‘myMorlet’ function.
% Once done, come back here to continue.
% Let’s say we are interested in frequencies between 0 and 40 Hz
minFreq = 0;
maxFreq = 40;
% Calculate the frequency vectors and matching power values over time using
% the ‘myMorlet’ function. Remember, we don’t use the epoched data for frequency analysis
% First use the continous filtered data, ‘fdata’ for the transformation to
% the time-frequency domain, then epoch the t-f data.
for i=1:nchans
[tf_freqs{i}, tf_pows{i}] = myMorlet(fdata(i,:), srate, minFreq, maxFreq); % Only complete the right side. Use ‘fdata’, ‘srate’, ‘minFreq’ and ‘maxFreq’ inside myMorlet
end
nfreqs = size(tf_freqs{1},1); % The number of frequencies
etf_pows = zeros(nchans, nfreqs, eN, ntrials); % Initiate matrix for epoched t-f data
metf_pows = zeros(nchans, nfreqs, eN); % Initiate matrix for averaged epoched t-f data
% Epoch the t-f data and calculate the mean t-f data
% This part is already done, though inspect it to see how it was done
for i = 1:nchans % calculate etf_pows and metf_pows
etf_pows(i,:,:,:) = reshape(tf_pows{i}, nfreqs,[], ntrials);
metf_pows(i,:,:) = squeeze(mean(etf_pows(i,:,:,:),4));
end
% Plots
nC = 4; % Number of types of plots
% FIGURE 2
figure(‘Name’,’Analysis Results’, ‘Position’, [10 200 900 nC*200]) % Create figure 2, adjust its size
% Here you will create Figure 2, where averaged TD (time-domain), averaged untapered FD (frequency-domain),
% averaged Tapered FD, and the averaged TF (time-frequency domain) data are plotted, separately for each channel
% Use subplots in the loop to create the figure. The figure created should
% look like the one in the question (Figure 2).
for i = 1:nchans
subplot(nchans, nC, (i-1)*nC + 1) % Use ‘nchans’ and ‘nC’ variables to adjust the indices
plot(etime,mefdata(i,:)) % Plot epoch time vs mean epoched, filtered data.
title(‘Averaged Signal TD’)
xlim([min(etime), max(etime)]) % Use min and max etime for the range of x values
ylabel([‘Channel ‘, num2str(i)]) % The ylabel should show the channel number (see Fig. 2 in the question)
subplot(nchans, nC, (i-1)*nC + 2) % Use ‘nchans’ and ‘nC’ variables to adjust the indices
plot(tf_freqs{i}, tf_pows{i}) % Plots freqs vs pows for untapered data
title(‘Avg. Signal FD’)
xlim([minFreq, maxFreq]) % Use minFreq and maxFreq as limits
subplot(nchans, nC, (i-1)*nC + 3) % Use ‘nchans’ and ‘nC’ variables to adjust the indices
plot(tf_freqs{i}, tmefdata(i, :)) % Plots freqs vs pows for tapered data
title(‘Avg. Tapered Signal FD’)
xlim([minFreq, maxFreq]) % Use minFreq and maxFreq as limits
subplot(nchans,nC,(i-1)*nC + 4);
% Use etime, tf_freqs, and metf_pows for the contourf plot. Be careful
% about whether you use () or {} and the indices. Consider using the
% squeeze function as well. Number of contour levels is already set as
% 40, and ‘linecolor’ is set to ‘none’.
contourf(etime, squeeze(tf_freqs{i}), squeeze(metf_pows(i, :, :)),40,’linecolor’,’none’)
title(‘Signal TF’)
end
% Coherence Analysis
% Here you will study the coherence in the signal between pairs of
% channels.
% Initialize the cell array to store coherence results
cohRes = cell(nchans, nchans);
% FIGURE 3
figure(‘Name’,’Coherence Analysis’, ‘Position’, [10 200 800 800])
% Loop over each pair of channels
for i = 1:nchans
for j = (i+1):nchans
% Extract data for the current channel pair
chanA_data = data(i, :);
chanB_data = data(j, :);
% Perform spectral coherence analysis
% Check the ‘mscohere’ documentation. Use chanA_data and chanB_data
% for the two signals. Use the default window and nooverlap values
% (just put ‘[]’ to use the default values). Check frequencies 0 to
% 40. Use srate for the sampling rate.
[cohVals, cohFreqs] = mscohere(chanA_data, chanB_data, [], [], 0:40, srate);
% Store coherence results in the cell array
cohRes{i, j} = cohVals;
% Plot coherence results in subplots
subplot(nchans, nchans, (i-1)*nchans + j); % Cool indexing magic here
plot(cohFreqs, cohVals); % Plot coherence frequencies vs coherence values
xlabel(‘Frequency (Hz)’);
ylabel(‘Coherence’);
title([‘Chan. ‘, num2str(i), ‘ & ‘, num2str(j)]);
end
end
% My Fourier Transform Function
% The ‘myFourier’ function takes the signal and sampling rate as inputs
% and produces a vector frequencies and a vector of matching power values
% Use the ‘fft’ function to calculate the Fouerier coefficients.
function [freqs, pows] = myFourier(signal,srate)
n = length(signal); % length of signal
freqs = linspace(0, srate/2, n/2+1); % frequency vector
signalx = fft(signal); % conduct fft with the signal
pows = abs(signalx(1:n/2+1)).^2; % calculate power values based on the coefficients
end
% Morlet Convolution
% The ‘myMorlet’ function takes the signal, sampling rate, and min & max
% frequencies as inputs, and outputs the frequencies and matching powers
% over the time series. Use Matlab’s ‘cwt’ function with the ‘amor’ option
% to conduct a Morlet wavelet transofrmation. Use the ‘FrequencyLimits’
% option with ‘minFreq’ and ‘maxFreq’ as limits. Check the ‘cwt’
% documentation for info on how to use these options.
function [freqs, pows] = myMorlet(signal,srate,minFreq,maxFreq)
[coefs, freqs] = cwt(signal, ‘amor’, srate, ‘FrequencyLimits’, [minFreq, maxFreq]); % Use the ‘cwt’ function with the ‘amor’ option to calculate the coefficients and frequencies
pows =abs(coefs).^2; % Use the ‘abs’ function to calculate ampltitudes from ‘coefs’ and take its square to calculate power
end load(‘eegdata.mat’);
data = eegdata;
srate = 500;
N = size(data, 2); % Length of data on a channel; total number of data points
nchans = size(data, 1) ; % Number of channels, which is the size of the first dim of ‘data’
time = (0:N-1) / srate; % Time vector
ntrials = 10; % Number of trials
% Lowpass Filter ————–
% You will create the gaussian kernel here for low-pass filtering. Use
% a steepness value of 0.5 and kernel length of 15.
steepness = 0.5; % kernel steepness
kernelLength = 15; % kernel length
incr = 2*steepness/(kernelLength-1);
kernel = exp(-(-steepness:incr:steepness).^2);
kernel = kernel./sum(kernel); % normalize kernel
% Filtering
% Use a loop to go through the data on each channel and
% use the ‘conv’ function to convolve the data with the gaussian
% kernel you created above. Ensure that the output has the same
% length as the input data, using the ‘same’ option. The fdata matrix
% will store the filtered data.
for i = 1:nchans
fdata(i,:) = conv(data(i,:), kernel, ‘same’);
end
% FIGURE 1: Plot Raw and Filtered Channel Data
% Plot the raw and filtered data (‘data’ and ‘fdata’) for each channel
% separately, in the first and second columns. Modify the x/y labels and
% the plot titles as shown in the figure in the question prompt.
figure(‘Name’, ‘Channel Data’)
for i = 1:nchans
subplot(nchans, 2, (i-1)*2 + 1)
plot(time, data(i,:))
xlabel(‘Time (s)’)
ylabel(‘Amplitude’)
title([‘Raw Data – Channel ‘, num2str(i)])
subplot(nchans, 2, (i-1)*2 + 2)
plot(time, fdata(i,:))
xlabel(‘Time (s)’)
ylabel(‘Amplitude’)
title([‘Filtered Data – Channel ‘, num2str(i)])
end
% Epoch data ————–
% Epoch the data into epochs using the ‘reshape’ function.
% The number of epochs (trials) are indicated by the ‘ntrials’ variable.
% Data in each channel should be divided into ‘ntrials’ epochs and
% the resulting data should be stored in the ‘efdata’ matrix.
% The ‘efdata’ is a 3-dimensional matrix; with channels, data points, and trials
% as the dimensions, respectively.
efdata= reshape(fdata,nchans,[],ntrials);
% Average data across the epochs
% Calculate the mean data for each channel.
% You should take the average of all trials, separately for each channel.
% The ‘mean’ function allows you to indicate over which dimension
% should the mean be calculated. You should take the mean over trials.
mefdata = mean(efdata, 3);
eN = size(efdata, 2); % Calculate the length of a single epoch (number of data points in an epoch)
etime = 0:1/srate:(eN/srate)-1/srate; % Create the time vector for a single epoch
% Taper averaged epochs ————–
% As we discussed in class, edges in epoched data cause artifacts in
% frequency analysis. To avoid this problem, we will taper the data with
% a Hann window. Use the ‘hann’ function to create a hann window
% at the lenght of an epoch (you will need to transpose the output),
% then multiply the hann window with the averaged
% epoched data (‘mefdata’). Remember, this is an element-wise
% multiplication, meaning that each point in the hann window will be
% multiplied with the matching point in the data, separately for each
% channel (use ‘.*’). Store the tapered data matrix in ‘tmefdata’/
hanntaper = hann(eN); % Use the hann function and ‘eN’ as length. Transpose as well.
tmefdata = ‘mean(efdata, 3)’ .* ‘hann(eN)’ ; % multiply the mefdata with hanntaper. Use element-wise multiplication ‘.*’
% Frequency Analysis ————–
% Before you conduct the frequency analysis, go to the bottom of the script
% and follow the instructions to complete the ‘myFourier’ function. Once
% done, come back here to continue.
% Go through each channel and calculate the frequencies and powers for both
% the untapered (mefdata) and tapered (tmefdata) data.
for i=1:nchans
[mef_freqs(i,:),mef_pows(i,:)] = myFourier(mefdata(i,:)); % Left side is already done, complete the right side
[tmef_freqs(i,:),tmef_pows(i,:)] = myFourier(tmefdata(i,:)); % Left side is already done, complete the right side
end
% Time-Frequency Analysis————–
% Before you conduct the time-frequency analysis, go to the bottom of the
% script and follow the instructions to complete the ‘myMorlet’ function.
% Once done, come back here to continue.
% Let’s say we are interested in frequencies between 0 and 40 Hz
minFreq = 0;
maxFreq = 40;
% Calculate the frequency vectors and matching power values over time using
% the ‘myMorlet’ function. Remember, we don’t use the epoched data for frequency analysis
% First use the continous filtered data, ‘fdata’ for the transformation to
% the time-frequency domain, then epoch the t-f data.
for i=1:nchans
[tf_freqs{i}, tf_pows{i}] = myMorlet(fdata(i,:), srate, minFreq, maxFreq); % Only complete the right side. Use ‘fdata’, ‘srate’, ‘minFreq’ and ‘maxFreq’ inside myMorlet
end
nfreqs = size(tf_freqs{1},1); % The number of frequencies
etf_pows = zeros(nchans, nfreqs, eN, ntrials); % Initiate matrix for epoched t-f data
metf_pows = zeros(nchans, nfreqs, eN); % Initiate matrix for averaged epoched t-f data
% Epoch the t-f data and calculate the mean t-f data
% This part is already done, though inspect it to see how it was done
for i = 1:nchans % calculate etf_pows and metf_pows
etf_pows(i,:,:,:) = reshape(tf_pows{i}, nfreqs,[], ntrials);
metf_pows(i,:,:) = squeeze(mean(etf_pows(i,:,:,:),4));
end
% Plots
nC = 4; % Number of types of plots
% FIGURE 2
figure(‘Name’,’Analysis Results’, ‘Position’, [10 200 900 nC*200]) % Create figure 2, adjust its size
% Here you will create Figure 2, where averaged TD (time-domain), averaged untapered FD (frequency-domain),
% averaged Tapered FD, and the averaged TF (time-frequency domain) data are plotted, separately for each channel
% Use subplots in the loop to create the figure. The figure created should
% look like the one in the question (Figure 2).
for i = 1:nchans
subplot(nchans, nC, (i-1)*nC + 1) % Use ‘nchans’ and ‘nC’ variables to adjust the indices
plot(etime,mefdata(i,:)) % Plot epoch time vs mean epoched, filtered data.
title(‘Averaged Signal TD’)
xlim([min(etime), max(etime)]) % Use min and max etime for the range of x values
ylabel([‘Channel ‘, num2str(i)]) % The ylabel should show the channel number (see Fig. 2 in the question)
subplot(nchans, nC, (i-1)*nC + 2) % Use ‘nchans’ and ‘nC’ variables to adjust the indices
plot(tf_freqs{i}, tf_pows{i}) % Plots freqs vs pows for untapered data
title(‘Avg. Signal FD’)
xlim([minFreq, maxFreq]) % Use minFreq and maxFreq as limits
subplot(nchans, nC, (i-1)*nC + 3) % Use ‘nchans’ and ‘nC’ variables to adjust the indices
plot(tf_freqs{i}, tmefdata(i, :)) % Plots freqs vs pows for tapered data
title(‘Avg. Tapered Signal FD’)
xlim([minFreq, maxFreq]) % Use minFreq and maxFreq as limits
subplot(nchans,nC,(i-1)*nC + 4);
% Use etime, tf_freqs, and metf_pows for the contourf plot. Be careful
% about whether you use () or {} and the indices. Consider using the
% squeeze function as well. Number of contour levels is already set as
% 40, and ‘linecolor’ is set to ‘none’.
contourf(etime, squeeze(tf_freqs{i}), squeeze(metf_pows(i, :, :)),40,’linecolor’,’none’)
title(‘Signal TF’)
end
% Coherence Analysis
% Here you will study the coherence in the signal between pairs of
% channels.
% Initialize the cell array to store coherence results
cohRes = cell(nchans, nchans);
% FIGURE 3
figure(‘Name’,’Coherence Analysis’, ‘Position’, [10 200 800 800])
% Loop over each pair of channels
for i = 1:nchans
for j = (i+1):nchans
% Extract data for the current channel pair
chanA_data = data(i, :);
chanB_data = data(j, :);
% Perform spectral coherence analysis
% Check the ‘mscohere’ documentation. Use chanA_data and chanB_data
% for the two signals. Use the default window and nooverlap values
% (just put ‘[]’ to use the default values). Check frequencies 0 to
% 40. Use srate for the sampling rate.
[cohVals, cohFreqs] = mscohere(chanA_data, chanB_data, [], [], 0:40, srate);
% Store coherence results in the cell array
cohRes{i, j} = cohVals;
% Plot coherence results in subplots
subplot(nchans, nchans, (i-1)*nchans + j); % Cool indexing magic here
plot(cohFreqs, cohVals); % Plot coherence frequencies vs coherence values
xlabel(‘Frequency (Hz)’);
ylabel(‘Coherence’);
title([‘Chan. ‘, num2str(i), ‘ & ‘, num2str(j)]);
end
end
% My Fourier Transform Function
% The ‘myFourier’ function takes the signal and sampling rate as inputs
% and produces a vector frequencies and a vector of matching power values
% Use the ‘fft’ function to calculate the Fouerier coefficients.
function [freqs, pows] = myFourier(signal,srate)
n = length(signal); % length of signal
freqs = linspace(0, srate/2, n/2+1); % frequency vector
signalx = fft(signal); % conduct fft with the signal
pows = abs(signalx(1:n/2+1)).^2; % calculate power values based on the coefficients
end
% Morlet Convolution
% The ‘myMorlet’ function takes the signal, sampling rate, and min & max
% frequencies as inputs, and outputs the frequencies and matching powers
% over the time series. Use Matlab’s ‘cwt’ function with the ‘amor’ option
% to conduct a Morlet wavelet transofrmation. Use the ‘FrequencyLimits’
% option with ‘minFreq’ and ‘maxFreq’ as limits. Check the ‘cwt’
% documentation for info on how to use these options.
function [freqs, pows] = myMorlet(signal,srate,minFreq,maxFreq)
[coefs, freqs] = cwt(signal, ‘amor’, srate, ‘FrequencyLimits’, [minFreq, maxFreq]); % Use the ‘cwt’ function with the ‘amor’ option to calculate the coefficients and frequencies
pows =abs(coefs).^2; % Use the ‘abs’ function to calculate ampltitudes from ‘coefs’ and take its square to calculate power
end help MATLAB Answers — New Questions
Dynamically generate a simulink block
I was wondering if it was possible to dynamically generate a Simulink block (subsystem with mask) based on the parameters entered: for example being able to decide how many inputs/outputs it has by inserting the number as a parameter (as happens for the mux and demux blocks) but also by changing how the subsystem is made internally.I was wondering if it was possible to dynamically generate a Simulink block (subsystem with mask) based on the parameters entered: for example being able to decide how many inputs/outputs it has by inserting the number as a parameter (as happens for the mux and demux blocks) but also by changing how the subsystem is made internally. I was wondering if it was possible to dynamically generate a Simulink block (subsystem with mask) based on the parameters entered: for example being able to decide how many inputs/outputs it has by inserting the number as a parameter (as happens for the mux and demux blocks) but also by changing how the subsystem is made internally. subsystem, mask, dynamically generated block MATLAB Answers — New Questions
I am getting the following error when I run my script: Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatc
I’m running the following script in Matlab and getting the following error message:
h = h + (1/6) (k1 + 2k2 + 2*k3 + k4);
↑
Invalid expression. When calling a function or indexing a variable, use parentheses.
Otherwise, check for mismatched delimiters.
Could you please assist me with clearing the error.
% Given data
h0 = 4.84; % Initial height (m)
t0 = 0; % Initial time (hrs)
tf = 15; % Final time (hrs)
h_target = 3.5; % Target height (m) after 3.5 hrs
% Function representing the differential equation
dhdt = @(t, h, k) k * sqrt(h);
% Runge-Kutta method
h = h0;
t = t0;
k = 0; % To be determined
tolerance = 1e-6;
while t < 3.5
k1 = dhdt(t, h, k);
k2 = dhdt(t + 0.5, h + 0.5 * k1, k);
k3 = dhdt(t + 0.5, h + 0.5 * k2, k);
k4 = dhdt(t + 1, h + k3, k);
h = h + (1/6) * (k1 + 2*k2 + 2*k3 + k4);
t = t + 1;
k = (h_target – h) / (tf – t); % Adjusting k based on target height
end
% After 3.5 hours
fprintf(‘Height after 3.5 hours: %.4f mn’, h);
% Continue solving until tf
while t < tf
k1 = dhdt(t, h, k);
k2 = dhdt(t + 0.5, h + 0.5 * k1, k);
k3 = dhdt(t + 0.5, h + 0.5 * k2, k);
k4 = dhdt(t + 1, h + k3, k);
h = h + (1/6) * (k1 + 2*k2 + 2*k3 + k4);
t = t + 1;
end
% Display the final height
fprintf(‘Height after %.1f hours: %.4f mn’, tf, h);I’m running the following script in Matlab and getting the following error message:
h = h + (1/6) (k1 + 2k2 + 2*k3 + k4);
↑
Invalid expression. When calling a function or indexing a variable, use parentheses.
Otherwise, check for mismatched delimiters.
Could you please assist me with clearing the error.
% Given data
h0 = 4.84; % Initial height (m)
t0 = 0; % Initial time (hrs)
tf = 15; % Final time (hrs)
h_target = 3.5; % Target height (m) after 3.5 hrs
% Function representing the differential equation
dhdt = @(t, h, k) k * sqrt(h);
% Runge-Kutta method
h = h0;
t = t0;
k = 0; % To be determined
tolerance = 1e-6;
while t < 3.5
k1 = dhdt(t, h, k);
k2 = dhdt(t + 0.5, h + 0.5 * k1, k);
k3 = dhdt(t + 0.5, h + 0.5 * k2, k);
k4 = dhdt(t + 1, h + k3, k);
h = h + (1/6) * (k1 + 2*k2 + 2*k3 + k4);
t = t + 1;
k = (h_target – h) / (tf – t); % Adjusting k based on target height
end
% After 3.5 hours
fprintf(‘Height after 3.5 hours: %.4f mn’, h);
% Continue solving until tf
while t < tf
k1 = dhdt(t, h, k);
k2 = dhdt(t + 0.5, h + 0.5 * k1, k);
k3 = dhdt(t + 0.5, h + 0.5 * k2, k);
k4 = dhdt(t + 1, h + k3, k);
h = h + (1/6) * (k1 + 2*k2 + 2*k3 + k4);
t = t + 1;
end
% Display the final height
fprintf(‘Height after %.1f hours: %.4f mn’, tf, h); I’m running the following script in Matlab and getting the following error message:
h = h + (1/6) (k1 + 2k2 + 2*k3 + k4);
↑
Invalid expression. When calling a function or indexing a variable, use parentheses.
Otherwise, check for mismatched delimiters.
Could you please assist me with clearing the error.
% Given data
h0 = 4.84; % Initial height (m)
t0 = 0; % Initial time (hrs)
tf = 15; % Final time (hrs)
h_target = 3.5; % Target height (m) after 3.5 hrs
% Function representing the differential equation
dhdt = @(t, h, k) k * sqrt(h);
% Runge-Kutta method
h = h0;
t = t0;
k = 0; % To be determined
tolerance = 1e-6;
while t < 3.5
k1 = dhdt(t, h, k);
k2 = dhdt(t + 0.5, h + 0.5 * k1, k);
k3 = dhdt(t + 0.5, h + 0.5 * k2, k);
k4 = dhdt(t + 1, h + k3, k);
h = h + (1/6) * (k1 + 2*k2 + 2*k3 + k4);
t = t + 1;
k = (h_target – h) / (tf – t); % Adjusting k based on target height
end
% After 3.5 hours
fprintf(‘Height after 3.5 hours: %.4f mn’, h);
% Continue solving until tf
while t < tf
k1 = dhdt(t, h, k);
k2 = dhdt(t + 0.5, h + 0.5 * k1, k);
k3 = dhdt(t + 0.5, h + 0.5 * k2, k);
k4 = dhdt(t + 1, h + k3, k);
h = h + (1/6) * (k1 + 2*k2 + 2*k3 + k4);
t = t + 1;
end
% Display the final height
fprintf(‘Height after %.1f hours: %.4f mn’, tf, h); first order ode MATLAB Answers — New Questions
matlab parallel computing toolbox is not working
I am using Matlab R2023a and R2023b with parallel computing toolbox on Mac OS Ventura 13.5.1 (22G90). It used to work well, but without reason, the parallel stops working. I seems it just use one core as the order of the processed files is reversed with regard to that feed into the for loop.
I tried to re-install parallel computing toolbox. It worked for one time, but then stops working even when I re-install the toolbox again. I also tried re-install matlab. Still not working.
When I run parpool:
>> parpool
Unrecognized function or variable ‘parpool’.
Or start parpool by clicking Start Parallel Pool:
Unrecognized function or variable ‘parallel.internal.ui.PoolHelper.startPool’.
This used to work, but failed without any changes in search path or new toolboxes.
Could anyone give a hint?I am using Matlab R2023a and R2023b with parallel computing toolbox on Mac OS Ventura 13.5.1 (22G90). It used to work well, but without reason, the parallel stops working. I seems it just use one core as the order of the processed files is reversed with regard to that feed into the for loop.
I tried to re-install parallel computing toolbox. It worked for one time, but then stops working even when I re-install the toolbox again. I also tried re-install matlab. Still not working.
When I run parpool:
>> parpool
Unrecognized function or variable ‘parpool’.
Or start parpool by clicking Start Parallel Pool:
Unrecognized function or variable ‘parallel.internal.ui.PoolHelper.startPool’.
This used to work, but failed without any changes in search path or new toolboxes.
Could anyone give a hint? I am using Matlab R2023a and R2023b with parallel computing toolbox on Mac OS Ventura 13.5.1 (22G90). It used to work well, but without reason, the parallel stops working. I seems it just use one core as the order of the processed files is reversed with regard to that feed into the for loop.
I tried to re-install parallel computing toolbox. It worked for one time, but then stops working even when I re-install the toolbox again. I also tried re-install matlab. Still not working.
When I run parpool:
>> parpool
Unrecognized function or variable ‘parpool’.
Or start parpool by clicking Start Parallel Pool:
Unrecognized function or variable ‘parallel.internal.ui.PoolHelper.startPool’.
This used to work, but failed without any changes in search path or new toolboxes.
Could anyone give a hint? parallel computing toolbox MATLAB Answers — New Questions
Fix to frequent “Application not responding” for MATLAB on the Mac
I am frequently having the Mac version of MATLAB lock up in "Application not responding", leading to "Force quit" in the Finder or Terminal. I have found no specific way to reproducibly make this happen, but it tends to occur after a number of traditional (Java based) figures are opened and closed. The problem occurs in several hand-coded graphical interfaces (not GUIDE, pre-App Designer) that have worked for years, and it seems to be getting worse.
As far as I can tell, this is a Mac-specific problem. I thought it was confined to Silicon machines, but the same behavior occurs for Silicon machines running the Intel version of MATLAB as well as Intel machines. I see it a lot in releases 2023b and 2024a, even after updates, but one of my users reports problems as far back as 2021a. I know that I see more and more frequency Java errors in the command window in recent years, and these often preceed MATLAB freezing altogether. Just today, I’ve observed the problem when using Corretto 11 and 17 (only 2024a supports this), and I’m pretty sure it happens with Corretto 8.
A Javascript version (uifigure) of the same graphical interfaces presumably would not experience this problem, but it would take an enormous amount of work to transition these program over from legacy code. Despite what the Bug Fixes say in updates and new releases, the problem has not been fixed. Any ideas?I am frequently having the Mac version of MATLAB lock up in "Application not responding", leading to "Force quit" in the Finder or Terminal. I have found no specific way to reproducibly make this happen, but it tends to occur after a number of traditional (Java based) figures are opened and closed. The problem occurs in several hand-coded graphical interfaces (not GUIDE, pre-App Designer) that have worked for years, and it seems to be getting worse.
As far as I can tell, this is a Mac-specific problem. I thought it was confined to Silicon machines, but the same behavior occurs for Silicon machines running the Intel version of MATLAB as well as Intel machines. I see it a lot in releases 2023b and 2024a, even after updates, but one of my users reports problems as far back as 2021a. I know that I see more and more frequency Java errors in the command window in recent years, and these often preceed MATLAB freezing altogether. Just today, I’ve observed the problem when using Corretto 11 and 17 (only 2024a supports this), and I’m pretty sure it happens with Corretto 8.
A Javascript version (uifigure) of the same graphical interfaces presumably would not experience this problem, but it would take an enormous amount of work to transition these program over from legacy code. Despite what the Bug Fixes say in updates and new releases, the problem has not been fixed. Any ideas? I am frequently having the Mac version of MATLAB lock up in "Application not responding", leading to "Force quit" in the Finder or Terminal. I have found no specific way to reproducibly make this happen, but it tends to occur after a number of traditional (Java based) figures are opened and closed. The problem occurs in several hand-coded graphical interfaces (not GUIDE, pre-App Designer) that have worked for years, and it seems to be getting worse.
As far as I can tell, this is a Mac-specific problem. I thought it was confined to Silicon machines, but the same behavior occurs for Silicon machines running the Intel version of MATLAB as well as Intel machines. I see it a lot in releases 2023b and 2024a, even after updates, but one of my users reports problems as far back as 2021a. I know that I see more and more frequency Java errors in the command window in recent years, and these often preceed MATLAB freezing altogether. Just today, I’ve observed the problem when using Corretto 11 and 17 (only 2024a supports this), and I’m pretty sure it happens with Corretto 8.
A Javascript version (uifigure) of the same graphical interfaces presumably would not experience this problem, but it would take an enormous amount of work to transition these program over from legacy code. Despite what the Bug Fixes say in updates and new releases, the problem has not been fixed. Any ideas? mac, not responding MATLAB Answers — New Questions
Combined Doses in Simfunction
Hi. I have the code below with two different target for dosing. I plan to use different values (input in the code for different doses) for thoses targets and use simFunction. How should I modify the code. Thanks
setup; %(I build the model here)
params ={‘dose_amount’,’dose_amounta’};
Titles = {‘plasma’, ‘lung’,’liver’,’kidney’,’muscle’, ‘skin’,’adipose’,’bone’, ‘brain’,’heart’,’spleen’,’pancreas’,’tumor’};
obs = {‘V_tum’};
for i = 1:length(Titles)
Title = Titles{i};
entryAb =[‘CAb_’ Title];
entryADC =[‘CADC_’ Title];
entryPL =[‘CPL_’ Title];
entryPLun =[‘CPLun_’ Title];
obs = [obs;entryAb;entryADC;entryPL;entryPLun];
end
dis=linspace(5,70,numTumors);
for tumNum = 1:numTumors
entryTVR ={sprintf(‘TVR_tum%d’,tumNum)};
entryAb ={sprintf(‘Ab_tum%d’,tumNum)};
entryADC ={sprintf(‘ADC_tum%d’,tumNum)};
entryPL ={sprintf(‘PL_tum%d’,tumNum)};
entryPLun ={sprintf(‘PLun_tum%d’,tumNum)};
obs = [obs;entryTVR; entryAb;entryADC;entryPL;entryPLun];
end
input = [0.5 0;0.5 0.5]*1E6*sbioselect(model, ‘Name’,’BW’).value/sbioselect(model, ‘Name’,’MW_ADC’).value;
sfxn = createSimFunction(model, params, obs, {‘plasma.ADC_plasma’,’plasma.Ab_plasma’},’UseParallel’,true,’AutoAccelerate’,false);
doseTable = getTable(d1);
doseTable1 = getTable(d2);
doseTables = [doseTable, doseTable1];
simData = sfxn(input,configsetObj.StopTime,doseTables);
%% Doses
d1 = sbiodose(‘d1’, ‘repeat’);
d1.Amount = ‘dose_amount’;
d1.AmountUnits = ‘nanomole’;
d1.Interval = ‘dose_interval’;
d1.RepeatCount = ‘dose_repeat’;
d1.TargetName = ‘plasma.ADC_plasma’;
d1.StartTime = 0;
d1.TimeUnits=configsetObj.TimeUnits;
d2 = sbiodose(‘d2’, ‘repeat’);
d2.Amount = ‘dose_amounta’;
d2.AmountUnits = ‘nanomole’;
d2.Interval = ‘dose_intervala’;
d2.RepeatCount = ‘dose_repeata’;
d2.TargetName = ‘plasma.Ab_plasma’;
d2.StartTime = 0;
d2.TimeUnits=configsetObj.TimeUnits;Hi. I have the code below with two different target for dosing. I plan to use different values (input in the code for different doses) for thoses targets and use simFunction. How should I modify the code. Thanks
setup; %(I build the model here)
params ={‘dose_amount’,’dose_amounta’};
Titles = {‘plasma’, ‘lung’,’liver’,’kidney’,’muscle’, ‘skin’,’adipose’,’bone’, ‘brain’,’heart’,’spleen’,’pancreas’,’tumor’};
obs = {‘V_tum’};
for i = 1:length(Titles)
Title = Titles{i};
entryAb =[‘CAb_’ Title];
entryADC =[‘CADC_’ Title];
entryPL =[‘CPL_’ Title];
entryPLun =[‘CPLun_’ Title];
obs = [obs;entryAb;entryADC;entryPL;entryPLun];
end
dis=linspace(5,70,numTumors);
for tumNum = 1:numTumors
entryTVR ={sprintf(‘TVR_tum%d’,tumNum)};
entryAb ={sprintf(‘Ab_tum%d’,tumNum)};
entryADC ={sprintf(‘ADC_tum%d’,tumNum)};
entryPL ={sprintf(‘PL_tum%d’,tumNum)};
entryPLun ={sprintf(‘PLun_tum%d’,tumNum)};
obs = [obs;entryTVR; entryAb;entryADC;entryPL;entryPLun];
end
input = [0.5 0;0.5 0.5]*1E6*sbioselect(model, ‘Name’,’BW’).value/sbioselect(model, ‘Name’,’MW_ADC’).value;
sfxn = createSimFunction(model, params, obs, {‘plasma.ADC_plasma’,’plasma.Ab_plasma’},’UseParallel’,true,’AutoAccelerate’,false);
doseTable = getTable(d1);
doseTable1 = getTable(d2);
doseTables = [doseTable, doseTable1];
simData = sfxn(input,configsetObj.StopTime,doseTables);
%% Doses
d1 = sbiodose(‘d1’, ‘repeat’);
d1.Amount = ‘dose_amount’;
d1.AmountUnits = ‘nanomole’;
d1.Interval = ‘dose_interval’;
d1.RepeatCount = ‘dose_repeat’;
d1.TargetName = ‘plasma.ADC_plasma’;
d1.StartTime = 0;
d1.TimeUnits=configsetObj.TimeUnits;
d2 = sbiodose(‘d2’, ‘repeat’);
d2.Amount = ‘dose_amounta’;
d2.AmountUnits = ‘nanomole’;
d2.Interval = ‘dose_intervala’;
d2.RepeatCount = ‘dose_repeata’;
d2.TargetName = ‘plasma.Ab_plasma’;
d2.StartTime = 0;
d2.TimeUnits=configsetObj.TimeUnits; Hi. I have the code below with two different target for dosing. I plan to use different values (input in the code for different doses) for thoses targets and use simFunction. How should I modify the code. Thanks
setup; %(I build the model here)
params ={‘dose_amount’,’dose_amounta’};
Titles = {‘plasma’, ‘lung’,’liver’,’kidney’,’muscle’, ‘skin’,’adipose’,’bone’, ‘brain’,’heart’,’spleen’,’pancreas’,’tumor’};
obs = {‘V_tum’};
for i = 1:length(Titles)
Title = Titles{i};
entryAb =[‘CAb_’ Title];
entryADC =[‘CADC_’ Title];
entryPL =[‘CPL_’ Title];
entryPLun =[‘CPLun_’ Title];
obs = [obs;entryAb;entryADC;entryPL;entryPLun];
end
dis=linspace(5,70,numTumors);
for tumNum = 1:numTumors
entryTVR ={sprintf(‘TVR_tum%d’,tumNum)};
entryAb ={sprintf(‘Ab_tum%d’,tumNum)};
entryADC ={sprintf(‘ADC_tum%d’,tumNum)};
entryPL ={sprintf(‘PL_tum%d’,tumNum)};
entryPLun ={sprintf(‘PLun_tum%d’,tumNum)};
obs = [obs;entryTVR; entryAb;entryADC;entryPL;entryPLun];
end
input = [0.5 0;0.5 0.5]*1E6*sbioselect(model, ‘Name’,’BW’).value/sbioselect(model, ‘Name’,’MW_ADC’).value;
sfxn = createSimFunction(model, params, obs, {‘plasma.ADC_plasma’,’plasma.Ab_plasma’},’UseParallel’,true,’AutoAccelerate’,false);
doseTable = getTable(d1);
doseTable1 = getTable(d2);
doseTables = [doseTable, doseTable1];
simData = sfxn(input,configsetObj.StopTime,doseTables);
%% Doses
d1 = sbiodose(‘d1’, ‘repeat’);
d1.Amount = ‘dose_amount’;
d1.AmountUnits = ‘nanomole’;
d1.Interval = ‘dose_interval’;
d1.RepeatCount = ‘dose_repeat’;
d1.TargetName = ‘plasma.ADC_plasma’;
d1.StartTime = 0;
d1.TimeUnits=configsetObj.TimeUnits;
d2 = sbiodose(‘d2’, ‘repeat’);
d2.Amount = ‘dose_amounta’;
d2.AmountUnits = ‘nanomole’;
d2.Interval = ‘dose_intervala’;
d2.RepeatCount = ‘dose_repeata’;
d2.TargetName = ‘plasma.Ab_plasma’;
d2.StartTime = 0;
d2.TimeUnits=configsetObj.TimeUnits; combined doses in simfunction MATLAB Answers — New Questions
Parfor+for+if+if How to calculate variable form last if
See my code
parfor i = 1:n
for j=1:m
if some_condition(i)
if some_condition(i)
t=do_something(i);
b = [b;t];
end
end
end…
end
I want all b values to get out from the parSee my code
parfor i = 1:n
for j=1:m
if some_condition(i)
if some_condition(i)
t=do_something(i);
b = [b;t];
end
end
end…
end
I want all b values to get out from the par See my code
parfor i = 1:n
for j=1:m
if some_condition(i)
if some_condition(i)
t=do_something(i);
b = [b;t];
end
end
end…
end
I want all b values to get out from the par par+if+for MATLAB Answers — New Questions
Why does the for loop show the graph of the last plot?
Hi everyone.
My code is:
for i=46:52
plot(x,y1(:,i))
title("Title 1")
xlabel("xlabel1")
ylabel("ylabel1")
plot(x,y2(:,i))
title("Title 2")
xlabel("xlabel2")
ylabel("ylabel2")
end
Here x is a vector and y1, y2 are matrix. I intend to plot 14 different graphs of line (not in single figure, so didn’t use hold on). But matlab executes only plot(x,y2(:,52)) and its title and labels. I would be grateful if someone could explain the reasoning.Hi everyone.
My code is:
for i=46:52
plot(x,y1(:,i))
title("Title 1")
xlabel("xlabel1")
ylabel("ylabel1")
plot(x,y2(:,i))
title("Title 2")
xlabel("xlabel2")
ylabel("ylabel2")
end
Here x is a vector and y1, y2 are matrix. I intend to plot 14 different graphs of line (not in single figure, so didn’t use hold on). But matlab executes only plot(x,y2(:,52)) and its title and labels. I would be grateful if someone could explain the reasoning. Hi everyone.
My code is:
for i=46:52
plot(x,y1(:,i))
title("Title 1")
xlabel("xlabel1")
ylabel("ylabel1")
plot(x,y2(:,i))
title("Title 2")
xlabel("xlabel2")
ylabel("ylabel2")
end
Here x is a vector and y1, y2 are matrix. I intend to plot 14 different graphs of line (not in single figure, so didn’t use hold on). But matlab executes only plot(x,y2(:,52)) and its title and labels. I would be grateful if someone could explain the reasoning. for loop, plot MATLAB Answers — New Questions
Parpool won’t start anymore
All of the sudden parpool will not start. After hours of trying it does not succeed.
It has run without problems for months and months. I usually run the ‘local’ profile
Only changes made recently, was addition of new Win 10 user, and addition of a startup.m file for the original user (otherwise matlab would also f*** up starting properly.
Computer has been restarted thrice, but matlab can’t start parpool.
Any clues?
I also can’t validate the local profile. It gets stuck in createJob (second task)All of the sudden parpool will not start. After hours of trying it does not succeed.
It has run without problems for months and months. I usually run the ‘local’ profile
Only changes made recently, was addition of new Win 10 user, and addition of a startup.m file for the original user (otherwise matlab would also f*** up starting properly.
Computer has been restarted thrice, but matlab can’t start parpool.
Any clues?
I also can’t validate the local profile. It gets stuck in createJob (second task) All of the sudden parpool will not start. After hours of trying it does not succeed.
It has run without problems for months and months. I usually run the ‘local’ profile
Only changes made recently, was addition of new Win 10 user, and addition of a startup.m file for the original user (otherwise matlab would also f*** up starting properly.
Computer has been restarted thrice, but matlab can’t start parpool.
Any clues?
I also can’t validate the local profile. It gets stuck in createJob (second task) parpool MATLAB Answers — New Questions
I need Pressurized Water Reactor (PWR) steam generator matlab code so if anyone has please help me. Thanks
I need Pressurized Water Reactor (PWR) steam generator matlab code so if anyone has please help me. I want to analyse PWR in detail. ThanksI need Pressurized Water Reactor (PWR) steam generator matlab code so if anyone has please help me. I want to analyse PWR in detail. Thanks I need Pressurized Water Reactor (PWR) steam generator matlab code so if anyone has please help me. I want to analyse PWR in detail. Thanks nuclear, steam generator, steam, pwr, pressurized water reactor MATLAB Answers — New Questions
What’s the correct syntax to set-up discrete convolution ?
I am trying to generate a 1-D discrete convolution data-set but I keep getting NaN values. I am wondering what’s going wrong. I want to convolve the function "differentiated_green" with the function "f" with respect to the variable "x".
These are the common parameters needed for complete definition of both the functions:
M = 0.5; alpha = log(2)/2; epsilon = 0.5; f = 1/30; omega = 2*pi*f; c_inf = 340; k = omega/c_inf; t = 270; nodes = 401;
y = 0;
x_start = -200; x_end = 200;
length = x_end – x_start;
x = linspace(x_start,x_end,nodes);
This is the definition of the function "f":
f = epsilon * exp( -alpha * x.^2);
This is the definition of the function "differentiated_green":
A = omega/( 4 * (c_inf^2)*sqrt(1-M^2));
B = besselh(0, (k*x)/(1-M^2));
C = exp( -1i*((M*k*x)/(1-M^2)) – (1i*omega*t));
differentiated_Green = (A * B) .* C;
The function "differentiated_green" is a complex value due to the presence of Hankel function in "B" and the exponential term "C". Since I want to convolve this function’s real values with the function "f", these are the commands I am using:
p = conv(real(differentiated_Green),f,’same’);
These commands are giving me NaN values and I am trying to understand what’s going wrong. Can someone please point out to me where I should troubleshoot ?I am trying to generate a 1-D discrete convolution data-set but I keep getting NaN values. I am wondering what’s going wrong. I want to convolve the function "differentiated_green" with the function "f" with respect to the variable "x".
These are the common parameters needed for complete definition of both the functions:
M = 0.5; alpha = log(2)/2; epsilon = 0.5; f = 1/30; omega = 2*pi*f; c_inf = 340; k = omega/c_inf; t = 270; nodes = 401;
y = 0;
x_start = -200; x_end = 200;
length = x_end – x_start;
x = linspace(x_start,x_end,nodes);
This is the definition of the function "f":
f = epsilon * exp( -alpha * x.^2);
This is the definition of the function "differentiated_green":
A = omega/( 4 * (c_inf^2)*sqrt(1-M^2));
B = besselh(0, (k*x)/(1-M^2));
C = exp( -1i*((M*k*x)/(1-M^2)) – (1i*omega*t));
differentiated_Green = (A * B) .* C;
The function "differentiated_green" is a complex value due to the presence of Hankel function in "B" and the exponential term "C". Since I want to convolve this function’s real values with the function "f", these are the commands I am using:
p = conv(real(differentiated_Green),f,’same’);
These commands are giving me NaN values and I am trying to understand what’s going wrong. Can someone please point out to me where I should troubleshoot ? I am trying to generate a 1-D discrete convolution data-set but I keep getting NaN values. I am wondering what’s going wrong. I want to convolve the function "differentiated_green" with the function "f" with respect to the variable "x".
These are the common parameters needed for complete definition of both the functions:
M = 0.5; alpha = log(2)/2; epsilon = 0.5; f = 1/30; omega = 2*pi*f; c_inf = 340; k = omega/c_inf; t = 270; nodes = 401;
y = 0;
x_start = -200; x_end = 200;
length = x_end – x_start;
x = linspace(x_start,x_end,nodes);
This is the definition of the function "f":
f = epsilon * exp( -alpha * x.^2);
This is the definition of the function "differentiated_green":
A = omega/( 4 * (c_inf^2)*sqrt(1-M^2));
B = besselh(0, (k*x)/(1-M^2));
C = exp( -1i*((M*k*x)/(1-M^2)) – (1i*omega*t));
differentiated_Green = (A * B) .* C;
The function "differentiated_green" is a complex value due to the presence of Hankel function in "B" and the exponential term "C". Since I want to convolve this function’s real values with the function "f", these are the commands I am using:
p = conv(real(differentiated_Green),f,’same’);
These commands are giving me NaN values and I am trying to understand what’s going wrong. Can someone please point out to me where I should troubleshoot ? convolution MATLAB Answers — New Questions
how to change width and space in barplot?
Dear all,
can someone tell me if its possible to change the width of the bars in a barplot (so that they are wider) and obtain some space between the bars (so that I have the same but bigger space across all bars) while keeping the position of the xticks fixed relative to the bars? For example, I have the xticks = 0,5,10,15… so that the 6th bar is exactly at xtick 5, the 11th bar at xtick 10 and so on. I’m trying to keep this while increasing the barwidth and barspacing. But maybe barwidth and barspacing are not optimal for this exercise? Can anyone tell me what I can do?
Thank you very much for your help!Dear all,
can someone tell me if its possible to change the width of the bars in a barplot (so that they are wider) and obtain some space between the bars (so that I have the same but bigger space across all bars) while keeping the position of the xticks fixed relative to the bars? For example, I have the xticks = 0,5,10,15… so that the 6th bar is exactly at xtick 5, the 11th bar at xtick 10 and so on. I’m trying to keep this while increasing the barwidth and barspacing. But maybe barwidth and barspacing are not optimal for this exercise? Can anyone tell me what I can do?
Thank you very much for your help! Dear all,
can someone tell me if its possible to change the width of the bars in a barplot (so that they are wider) and obtain some space between the bars (so that I have the same but bigger space across all bars) while keeping the position of the xticks fixed relative to the bars? For example, I have the xticks = 0,5,10,15… so that the 6th bar is exactly at xtick 5, the 11th bar at xtick 10 and so on. I’m trying to keep this while increasing the barwidth and barspacing. But maybe barwidth and barspacing are not optimal for this exercise? Can anyone tell me what I can do?
Thank you very much for your help! bar barplot size space width barwidth barspace MATLAB Answers — New Questions
How to spline 163 data points into 100 data points?
I have a data set that is a "double" class 163×1 in a numeric matrix, I would like to spline this data into 100 points instead of 163 data points.
Although I have researched and checked on the ‘Help’ section of spline, I have followed it to the best of my abilities and I have searched here for answers, unfortunately I have not found my answer.
Furthermore, when I run through this code that I have created it says that "Index in position 2 is larger than array. This should be less than 1".
z = [lCOMz_FS1_1]’;
x1 = 0:1:99;
y1 = linspace(z(1,1), z(1,163), 100);
COMz = spline(x1,y1);
plot(x1,y1,COMz)
I’d like to thank anyone in advance for such helping me on such a simple code.I have a data set that is a "double" class 163×1 in a numeric matrix, I would like to spline this data into 100 points instead of 163 data points.
Although I have researched and checked on the ‘Help’ section of spline, I have followed it to the best of my abilities and I have searched here for answers, unfortunately I have not found my answer.
Furthermore, when I run through this code that I have created it says that "Index in position 2 is larger than array. This should be less than 1".
z = [lCOMz_FS1_1]’;
x1 = 0:1:99;
y1 = linspace(z(1,1), z(1,163), 100);
COMz = spline(x1,y1);
plot(x1,y1,COMz)
I’d like to thank anyone in advance for such helping me on such a simple code. I have a data set that is a "double" class 163×1 in a numeric matrix, I would like to spline this data into 100 points instead of 163 data points.
Although I have researched and checked on the ‘Help’ section of spline, I have followed it to the best of my abilities and I have searched here for answers, unfortunately I have not found my answer.
Furthermore, when I run through this code that I have created it says that "Index in position 2 is larger than array. This should be less than 1".
z = [lCOMz_FS1_1]’;
x1 = 0:1:99;
y1 = linspace(z(1,1), z(1,163), 100);
COMz = spline(x1,y1);
plot(x1,y1,COMz)
I’d like to thank anyone in advance for such helping me on such a simple code. spline, database, normalisation MATLAB Answers — New Questions