Tag Archives: matlab
How to extract seven bands data with map and projection information using shape file?
I want to extract seven bands data with map and projection information using shape file. I am attaching the MATLAB code which is working but extracting only one band data alongwith data file and shape file. I request you to please suggest me how to extract all seven bands data with map and projection information.
I would appreciate your kind cooperation and kind help.
GauriI want to extract seven bands data with map and projection information using shape file. I am attaching the MATLAB code which is working but extracting only one band data alongwith data file and shape file. I request you to please suggest me how to extract all seven bands data with map and projection information.
I would appreciate your kind cooperation and kind help.
Gauri I want to extract seven bands data with map and projection information using shape file. I am attaching the MATLAB code which is working but extracting only one band data alongwith data file and shape file. I request you to please suggest me how to extract all seven bands data with map and projection information.
I would appreciate your kind cooperation and kind help.
Gauri how to extract seven bands data with map and proj? MATLAB Answers — New Questions
Why is the library browser in Simulink so slow in Matlab R2022 (MacOS) and how can it be fixed?
Whenever I want to search for an object in the library browser, when using Simulink, I usually double-click on a blank area and type in the name of the object. On my Windows desktop (and previous laptops) it works just fine, responsive and quick. But with my Simulink on my MacBook Pro M1 (native) it seems to take at least a few seconds, where the entire library browser field for typing seems to freeze, before I get the results.
I am running MATLAB R2022b currently and have also tried with R2022a, both give the same result. My OS is Ventura 13.2+
Some other functions such as panning, moving and zooming seem to stutter also. Finally I’ve noticed that my simulations tend to take quite a bit of time to run (30-60 seconds), while the same simulations take half the time on a significantly older and weaker windows desktop.
Is this issue fixable and how?Whenever I want to search for an object in the library browser, when using Simulink, I usually double-click on a blank area and type in the name of the object. On my Windows desktop (and previous laptops) it works just fine, responsive and quick. But with my Simulink on my MacBook Pro M1 (native) it seems to take at least a few seconds, where the entire library browser field for typing seems to freeze, before I get the results.
I am running MATLAB R2022b currently and have also tried with R2022a, both give the same result. My OS is Ventura 13.2+
Some other functions such as panning, moving and zooming seem to stutter also. Finally I’ve noticed that my simulations tend to take quite a bit of time to run (30-60 seconds), while the same simulations take half the time on a significantly older and weaker windows desktop.
Is this issue fixable and how? Whenever I want to search for an object in the library browser, when using Simulink, I usually double-click on a blank area and type in the name of the object. On my Windows desktop (and previous laptops) it works just fine, responsive and quick. But with my Simulink on my MacBook Pro M1 (native) it seems to take at least a few seconds, where the entire library browser field for typing seems to freeze, before I get the results.
I am running MATLAB R2022b currently and have also tried with R2022a, both give the same result. My OS is Ventura 13.2+
Some other functions such as panning, moving and zooming seem to stutter also. Finally I’ve noticed that my simulations tend to take quite a bit of time to run (30-60 seconds), while the same simulations take half the time on a significantly older and weaker windows desktop.
Is this issue fixable and how? simulink, macos, mac, simulation, library browser MATLAB Answers — New Questions
how to match signatures
i am doing project on signature recognition.
i have to match the signatures in the project.how should we do the matching of the signatures?can we use euclidean distance?if possible how can we write matlab code for that?i am doing project on signature recognition.
i have to match the signatures in the project.how should we do the matching of the signatures?can we use euclidean distance?if possible how can we write matlab code for that? i am doing project on signature recognition.
i have to match the signatures in the project.how should we do the matching of the signatures?can we use euclidean distance?if possible how can we write matlab code for that? MATLAB Answers — New Questions
How to select the harness of model through scripting commands and select the harness in test manager automatically by just specifying the harness name
I am trying to access the test manager through scripting commands .I have used testmanager.SetProperty (‘HarnessName’ ,name) and testmanager.SetProperty(‘HarnessOwner’, modelname) but still the property is not setted in test manager .I want to select the harness in the test manager through scripting functions .The above is not giving anyerror but not selecting the desired harness which I want to select from the harnessList.Please help to solve this if any one knows.Any UI command lines .The model is selected the Harness is drop down showing harness of internaly saved ,lets says the harnesses from xml saved info file .I want to select the harnesses by name .Help me out!I am trying to access the test manager through scripting commands .I have used testmanager.SetProperty (‘HarnessName’ ,name) and testmanager.SetProperty(‘HarnessOwner’, modelname) but still the property is not setted in test manager .I want to select the harness in the test manager through scripting functions .The above is not giving anyerror but not selecting the desired harness which I want to select from the harnessList.Please help to solve this if any one knows.Any UI command lines .The model is selected the Harness is drop down showing harness of internaly saved ,lets says the harnesses from xml saved info file .I want to select the harnesses by name .Help me out! I am trying to access the test manager through scripting commands .I have used testmanager.SetProperty (‘HarnessName’ ,name) and testmanager.SetProperty(‘HarnessOwner’, modelname) but still the property is not setted in test manager .I want to select the harness in the test manager through scripting functions .The above is not giving anyerror but not selecting the desired harness which I want to select from the harnessList.Please help to solve this if any one knows.Any UI command lines .The model is selected the Harness is drop down showing harness of internaly saved ,lets says the harnesses from xml saved info file .I want to select the harnesses by name .Help me out! simulinktestmanager, simulink, handles, model, harness, scripting, testmanagerui access MATLAB Answers — New Questions
addVertex function is slow compared to solve function [FEA, FEM, Finite element, PDE, structural, static-solid]
Hello
During my work with MATLAB’s Partial Differential Equation Toolbox to perform 3D structural, static-solid FEA I recognized that the addVertex function is very slow.
In my models, adding the vertices for the boundary conditions takes much longer then solving the actual model, e.g. sometimes 4 times longer.
Find attached an example. In this case the differnence is not that big but adding the vertices still takes longer then solving, e.g. on my computer:
Adding fixture constraint. Completed after 0.43 minutes.
Solving FEA. Completed after 0.29 minutes.
In this example the fixture is delimited only by a plane. Usally in my models the situation is more complex. That’s why many vertices must be added to define the boundary conditions.
Are there any options to speed this up, e.g. parallel computing?
Kind regards
FritzHello
During my work with MATLAB’s Partial Differential Equation Toolbox to perform 3D structural, static-solid FEA I recognized that the addVertex function is very slow.
In my models, adding the vertices for the boundary conditions takes much longer then solving the actual model, e.g. sometimes 4 times longer.
Find attached an example. In this case the differnence is not that big but adding the vertices still takes longer then solving, e.g. on my computer:
Adding fixture constraint. Completed after 0.43 minutes.
Solving FEA. Completed after 0.29 minutes.
In this example the fixture is delimited only by a plane. Usally in my models the situation is more complex. That’s why many vertices must be added to define the boundary conditions.
Are there any options to speed this up, e.g. parallel computing?
Kind regards
Fritz Hello
During my work with MATLAB’s Partial Differential Equation Toolbox to perform 3D structural, static-solid FEA I recognized that the addVertex function is very slow.
In my models, adding the vertices for the boundary conditions takes much longer then solving the actual model, e.g. sometimes 4 times longer.
Find attached an example. In this case the differnence is not that big but adding the vertices still takes longer then solving, e.g. on my computer:
Adding fixture constraint. Completed after 0.43 minutes.
Solving FEA. Completed after 0.29 minutes.
In this example the fixture is delimited only by a plane. Usally in my models the situation is more complex. That’s why many vertices must be added to define the boundary conditions.
Are there any options to speed this up, e.g. parallel computing?
Kind regards
Fritz fea, pde, fem, structural, addvertex, static-solid MATLAB Answers — New Questions
Window not accommodate my formulated analytical equations (Qy), it might go thousands, probably due to coded through sprintf; any assistance please
my code need alot of data to nonlinear equation,
function [FUN] = magige222(matr)
matL=abs(matr); [NodLp,pQ]=size(matr); data1=3; data2=data1+2-1; Nod3=NodLp-data1; p=pQ-1; nodes=9; LP=Nod3-nodes; JJ=NodLp-8+1; HLD=0; % matr loop eqns; not general matrix (MAG)
FUN = ‘FUN=@(Qy)[‘;
for j=JJ:NodLp % looping headloses eqns
for k=1:p
if (sum(matL(j,1:k))<=sum(matL(j,1:p)))&&matL(j,k)~=0 FUN = [FUN, sprintf(‘(%d.*Qy(%d).*abs(Qy(%d)*8.*L(1,%d)*1./(9.81*3.14.^2.*D(1,%d).^5).*(0.25.*(log10(ee./(3.7.*D(1,%d))+2.51*3.14*vs.*D(1,%d)./(4.*Qy(%d)).*(0.25.*(log10(ee./(3.7.*D(1,%d))+2.51*3.14*vs.*D(1,%d)./(4.*Qy(%d)).*(0.25.*(log10(ee./(3.7.*D(1,%d))+2.51*3.14*vs.*D(1,%d)./(4.*Qy(%d)).*0.00001.^-0.5)).^-2).^-0.5)).^-2).^-0.5)).^-2)))+’,matr(j,k),k,k,k,k,k,k,k,k,k,k,k,k,k)]; end
if (k==p) FUN = [FUN, sprintf(‘(%d);’,matr(j,k+1))]; end
end
end
for j=data2:NodLp-8 % Nodal mass balance eqns
for k=1:p
if (sum(matL(j,1:k))<=sum(matL(j,1:p)))&&(matL(j,k)~=0) FUN = [FUN, sprintf(‘(%d.*Qy(%d))+’,matr(j,k),k)]; end
if (k==p) FUN = [FUN, sprintf(‘(%d);’,matr(j,k+1))]; end % FUN = [FUN, sprintf(‘matr(j,k+1);’,j,k)]; end
end
end
FUN = [FUN, ‘(1.*Qy(1))+(-1.*Qy(2))+(0);(1.*Qy(2))+(-1.*Qy(3))+(-1.*Qy(9))+(-1.*Qy(15))+(-5.900000e-02);(1.*Qy(3))+(-1.*Qy(4))+(-1.*Qy(8))+(-5.900000e-02);(1.*Qy(4))+(1.*Qy(5))+(-1.*Qy(7))+(-1.780000e-01);(-1.*Qy(5))+(1.*Qy(6))+(-1.*Qy(11))+(-1.*Qy(12))+(-5.900000e-02);(1.*Qy(7))+(-1.*Qy(10))+(1.*Qy(11))+(-1.*Qy(13))+(-1.900000e-01);(1.*Qy(8))+(1.*Qy(9))+(1.*Qy(10))+(-1.*Qy(14))+(-1.780000e-01);(1.*Qy(14))+(1.*Qy(20))+(1.*Qy(21))+(-9.100000e-02);(1.*Qy(16))+(1.*Qy(19))+(-1.*Qy(20))+(0);(1.*Qy(15))+(-1.*Qy(16))+(1.*Qy(17))+(0);(1.*Qy(17))+(-1.*Qy(18))+(-3.000000e-02);(1.*Qy(18))+(-1.*Qy(19))+(-3.000000e-02);(1.*Qy(12))+(1.*Qy(13))+(-1.*Qy(21))+(0)];’];
end
the output those I got as executed the code
8.*L(1,70)*1./(9.81*3.14.^2.*D(1,70).^5).*(0.25.*(log… Output truncated. Text exceeds maximum line length for Command Window display.my code need alot of data to nonlinear equation,
function [FUN] = magige222(matr)
matL=abs(matr); [NodLp,pQ]=size(matr); data1=3; data2=data1+2-1; Nod3=NodLp-data1; p=pQ-1; nodes=9; LP=Nod3-nodes; JJ=NodLp-8+1; HLD=0; % matr loop eqns; not general matrix (MAG)
FUN = ‘FUN=@(Qy)[‘;
for j=JJ:NodLp % looping headloses eqns
for k=1:p
if (sum(matL(j,1:k))<=sum(matL(j,1:p)))&&matL(j,k)~=0 FUN = [FUN, sprintf(‘(%d.*Qy(%d).*abs(Qy(%d)*8.*L(1,%d)*1./(9.81*3.14.^2.*D(1,%d).^5).*(0.25.*(log10(ee./(3.7.*D(1,%d))+2.51*3.14*vs.*D(1,%d)./(4.*Qy(%d)).*(0.25.*(log10(ee./(3.7.*D(1,%d))+2.51*3.14*vs.*D(1,%d)./(4.*Qy(%d)).*(0.25.*(log10(ee./(3.7.*D(1,%d))+2.51*3.14*vs.*D(1,%d)./(4.*Qy(%d)).*0.00001.^-0.5)).^-2).^-0.5)).^-2).^-0.5)).^-2)))+’,matr(j,k),k,k,k,k,k,k,k,k,k,k,k,k,k)]; end
if (k==p) FUN = [FUN, sprintf(‘(%d);’,matr(j,k+1))]; end
end
end
for j=data2:NodLp-8 % Nodal mass balance eqns
for k=1:p
if (sum(matL(j,1:k))<=sum(matL(j,1:p)))&&(matL(j,k)~=0) FUN = [FUN, sprintf(‘(%d.*Qy(%d))+’,matr(j,k),k)]; end
if (k==p) FUN = [FUN, sprintf(‘(%d);’,matr(j,k+1))]; end % FUN = [FUN, sprintf(‘matr(j,k+1);’,j,k)]; end
end
end
FUN = [FUN, ‘(1.*Qy(1))+(-1.*Qy(2))+(0);(1.*Qy(2))+(-1.*Qy(3))+(-1.*Qy(9))+(-1.*Qy(15))+(-5.900000e-02);(1.*Qy(3))+(-1.*Qy(4))+(-1.*Qy(8))+(-5.900000e-02);(1.*Qy(4))+(1.*Qy(5))+(-1.*Qy(7))+(-1.780000e-01);(-1.*Qy(5))+(1.*Qy(6))+(-1.*Qy(11))+(-1.*Qy(12))+(-5.900000e-02);(1.*Qy(7))+(-1.*Qy(10))+(1.*Qy(11))+(-1.*Qy(13))+(-1.900000e-01);(1.*Qy(8))+(1.*Qy(9))+(1.*Qy(10))+(-1.*Qy(14))+(-1.780000e-01);(1.*Qy(14))+(1.*Qy(20))+(1.*Qy(21))+(-9.100000e-02);(1.*Qy(16))+(1.*Qy(19))+(-1.*Qy(20))+(0);(1.*Qy(15))+(-1.*Qy(16))+(1.*Qy(17))+(0);(1.*Qy(17))+(-1.*Qy(18))+(-3.000000e-02);(1.*Qy(18))+(-1.*Qy(19))+(-3.000000e-02);(1.*Qy(12))+(1.*Qy(13))+(-1.*Qy(21))+(0)];’];
end
the output those I got as executed the code
8.*L(1,70)*1./(9.81*3.14.^2.*D(1,70).^5).*(0.25.*(log… Output truncated. Text exceeds maximum line length for Command Window display. my code need alot of data to nonlinear equation,
function [FUN] = magige222(matr)
matL=abs(matr); [NodLp,pQ]=size(matr); data1=3; data2=data1+2-1; Nod3=NodLp-data1; p=pQ-1; nodes=9; LP=Nod3-nodes; JJ=NodLp-8+1; HLD=0; % matr loop eqns; not general matrix (MAG)
FUN = ‘FUN=@(Qy)[‘;
for j=JJ:NodLp % looping headloses eqns
for k=1:p
if (sum(matL(j,1:k))<=sum(matL(j,1:p)))&&matL(j,k)~=0 FUN = [FUN, sprintf(‘(%d.*Qy(%d).*abs(Qy(%d)*8.*L(1,%d)*1./(9.81*3.14.^2.*D(1,%d).^5).*(0.25.*(log10(ee./(3.7.*D(1,%d))+2.51*3.14*vs.*D(1,%d)./(4.*Qy(%d)).*(0.25.*(log10(ee./(3.7.*D(1,%d))+2.51*3.14*vs.*D(1,%d)./(4.*Qy(%d)).*(0.25.*(log10(ee./(3.7.*D(1,%d))+2.51*3.14*vs.*D(1,%d)./(4.*Qy(%d)).*0.00001.^-0.5)).^-2).^-0.5)).^-2).^-0.5)).^-2)))+’,matr(j,k),k,k,k,k,k,k,k,k,k,k,k,k,k)]; end
if (k==p) FUN = [FUN, sprintf(‘(%d);’,matr(j,k+1))]; end
end
end
for j=data2:NodLp-8 % Nodal mass balance eqns
for k=1:p
if (sum(matL(j,1:k))<=sum(matL(j,1:p)))&&(matL(j,k)~=0) FUN = [FUN, sprintf(‘(%d.*Qy(%d))+’,matr(j,k),k)]; end
if (k==p) FUN = [FUN, sprintf(‘(%d);’,matr(j,k+1))]; end % FUN = [FUN, sprintf(‘matr(j,k+1);’,j,k)]; end
end
end
FUN = [FUN, ‘(1.*Qy(1))+(-1.*Qy(2))+(0);(1.*Qy(2))+(-1.*Qy(3))+(-1.*Qy(9))+(-1.*Qy(15))+(-5.900000e-02);(1.*Qy(3))+(-1.*Qy(4))+(-1.*Qy(8))+(-5.900000e-02);(1.*Qy(4))+(1.*Qy(5))+(-1.*Qy(7))+(-1.780000e-01);(-1.*Qy(5))+(1.*Qy(6))+(-1.*Qy(11))+(-1.*Qy(12))+(-5.900000e-02);(1.*Qy(7))+(-1.*Qy(10))+(1.*Qy(11))+(-1.*Qy(13))+(-1.900000e-01);(1.*Qy(8))+(1.*Qy(9))+(1.*Qy(10))+(-1.*Qy(14))+(-1.780000e-01);(1.*Qy(14))+(1.*Qy(20))+(1.*Qy(21))+(-9.100000e-02);(1.*Qy(16))+(1.*Qy(19))+(-1.*Qy(20))+(0);(1.*Qy(15))+(-1.*Qy(16))+(1.*Qy(17))+(0);(1.*Qy(17))+(-1.*Qy(18))+(-3.000000e-02);(1.*Qy(18))+(-1.*Qy(19))+(-3.000000e-02);(1.*Qy(12))+(1.*Qy(13))+(-1.*Qy(21))+(0)];’];
end
the output those I got as executed the code
8.*L(1,70)*1./(9.81*3.14.^2.*D(1,70).^5).*(0.25.*(log… Output truncated. Text exceeds maximum line length for Command Window display. sprintf MATLAB Answers — New Questions
How to define variable resistance as a function of heat input?
Hi
I am trying to develop a transient thermal model that considers both convective heat transfer and evaporative heat transfer using a variable convective heat transfer block. If the input to the variable heat transfer block is selected based on the temperature of the system (i.e. if T<T_sat – convective heat transfer cofficient is used, else evaporative heat transfer coefficient is used). Here T, is taken from a temperature sensor monitoring the wall temperature of the heat source, whilst T_sat is the saturation temperature of the liquid.
I also need the convective heat transfer coefficient to be a function of the heat input, hence the PS from heat flow rate sensor to the function block.
When this model is simulated, I get an discontinutity error. Is there a better way to do this. Any thoughts would be much appreciated?
Many thanksHi
I am trying to develop a transient thermal model that considers both convective heat transfer and evaporative heat transfer using a variable convective heat transfer block. If the input to the variable heat transfer block is selected based on the temperature of the system (i.e. if T<T_sat – convective heat transfer cofficient is used, else evaporative heat transfer coefficient is used). Here T, is taken from a temperature sensor monitoring the wall temperature of the heat source, whilst T_sat is the saturation temperature of the liquid.
I also need the convective heat transfer coefficient to be a function of the heat input, hence the PS from heat flow rate sensor to the function block.
When this model is simulated, I get an discontinutity error. Is there a better way to do this. Any thoughts would be much appreciated?
Many thanks Hi
I am trying to develop a transient thermal model that considers both convective heat transfer and evaporative heat transfer using a variable convective heat transfer block. If the input to the variable heat transfer block is selected based on the temperature of the system (i.e. if T<T_sat – convective heat transfer cofficient is used, else evaporative heat transfer coefficient is used). Here T, is taken from a temperature sensor monitoring the wall temperature of the heat source, whilst T_sat is the saturation temperature of the liquid.
I also need the convective heat transfer coefficient to be a function of the heat input, hence the PS from heat flow rate sensor to the function block.
When this model is simulated, I get an discontinutity error. Is there a better way to do this. Any thoughts would be much appreciated?
Many thanks variable thermal resistance, simscape, simulink, heat transfer MATLAB Answers — New Questions
How to derive the moving average of a time series generated in simulink?
Hi,
I have a dynamics system under excitation and I want to compute the moving average of the quantity "POW" I defined. In my case, the moving window has length 100, the sampling time was 0.01. So I expect to have the moving average "POW" every second.
clear all
clc
m1=0.947; m2=m1; Cp=1.1;
J=0.1*0.15^2/2;
L1=0.125;L2=0.035;
g=9.8;FI0=pi/2;
Kem=0.48; Rc=3.74;Re=5;
Cem=Kem^2/(Rc+Re);
TT=500;dt=1E-2;
tt=[0:dt:TT]’;
fl=0.1;
Ag=9.8*0.4;fg=1;
accg=Ag*sin(2*pi*fg*tt);
sim("buffermovemean.slx")
However, if I run the "questiononbuffer.m", the error message is :
"Error using questiononbuffer
The signal at ‘Output Port 1’ of ‘buffermovemean/Moving Average2’ is a variable-size signal with a nondiscrete sample time. The
sample time for any variable-size signal must be discrete."
So I tried to use buffer to transform the time series "POW" with fixed frame length 100 by the block "signal from workspace" and then apply moving-average, but the error message appears as:
Error using questiononbuffer
Error evaluating parameter ‘X’ in ‘buffermovemean/Signal From Workspace’
Caused by:
Error using questiononbuffer
Unrecognized function or variable ‘POW’.
Error using questiononbuffer
Variable ‘POW’ does not exist.
Suggested Actions:
• Load a file into base workspace. – Fix
• Create a new variable. – Fix
So my question is if the time series is generated in real time in the simulink, how to derive its moving average for a fixed duration like in my case? PS, when I use matlab 2019b, I could directly connect the moving-average block after the time series to get its moving average. But in matlab 2023b, error reports. How to fix it?
@Walter RobersonHi,
I have a dynamics system under excitation and I want to compute the moving average of the quantity "POW" I defined. In my case, the moving window has length 100, the sampling time was 0.01. So I expect to have the moving average "POW" every second.
clear all
clc
m1=0.947; m2=m1; Cp=1.1;
J=0.1*0.15^2/2;
L1=0.125;L2=0.035;
g=9.8;FI0=pi/2;
Kem=0.48; Rc=3.74;Re=5;
Cem=Kem^2/(Rc+Re);
TT=500;dt=1E-2;
tt=[0:dt:TT]’;
fl=0.1;
Ag=9.8*0.4;fg=1;
accg=Ag*sin(2*pi*fg*tt);
sim("buffermovemean.slx")
However, if I run the "questiononbuffer.m", the error message is :
"Error using questiononbuffer
The signal at ‘Output Port 1’ of ‘buffermovemean/Moving Average2’ is a variable-size signal with a nondiscrete sample time. The
sample time for any variable-size signal must be discrete."
So I tried to use buffer to transform the time series "POW" with fixed frame length 100 by the block "signal from workspace" and then apply moving-average, but the error message appears as:
Error using questiononbuffer
Error evaluating parameter ‘X’ in ‘buffermovemean/Signal From Workspace’
Caused by:
Error using questiononbuffer
Unrecognized function or variable ‘POW’.
Error using questiononbuffer
Variable ‘POW’ does not exist.
Suggested Actions:
• Load a file into base workspace. – Fix
• Create a new variable. – Fix
So my question is if the time series is generated in real time in the simulink, how to derive its moving average for a fixed duration like in my case? PS, when I use matlab 2019b, I could directly connect the moving-average block after the time series to get its moving average. But in matlab 2023b, error reports. How to fix it?
@Walter Roberson Hi,
I have a dynamics system under excitation and I want to compute the moving average of the quantity "POW" I defined. In my case, the moving window has length 100, the sampling time was 0.01. So I expect to have the moving average "POW" every second.
clear all
clc
m1=0.947; m2=m1; Cp=1.1;
J=0.1*0.15^2/2;
L1=0.125;L2=0.035;
g=9.8;FI0=pi/2;
Kem=0.48; Rc=3.74;Re=5;
Cem=Kem^2/(Rc+Re);
TT=500;dt=1E-2;
tt=[0:dt:TT]’;
fl=0.1;
Ag=9.8*0.4;fg=1;
accg=Ag*sin(2*pi*fg*tt);
sim("buffermovemean.slx")
However, if I run the "questiononbuffer.m", the error message is :
"Error using questiononbuffer
The signal at ‘Output Port 1’ of ‘buffermovemean/Moving Average2’ is a variable-size signal with a nondiscrete sample time. The
sample time for any variable-size signal must be discrete."
So I tried to use buffer to transform the time series "POW" with fixed frame length 100 by the block "signal from workspace" and then apply moving-average, but the error message appears as:
Error using questiononbuffer
Error evaluating parameter ‘X’ in ‘buffermovemean/Signal From Workspace’
Caused by:
Error using questiononbuffer
Unrecognized function or variable ‘POW’.
Error using questiononbuffer
Variable ‘POW’ does not exist.
Suggested Actions:
• Load a file into base workspace. – Fix
• Create a new variable. – Fix
So my question is if the time series is generated in real time in the simulink, how to derive its moving average for a fixed duration like in my case? PS, when I use matlab 2019b, I could directly connect the moving-average block after the time series to get its moving average. But in matlab 2023b, error reports. How to fix it?
@Walter Roberson buffer moving-average MATLAB Answers — New Questions
How do I break from a loop on keyboard input without plugins?
I have been trying to figure out for a while how to accomplish the following, but I don’t want to use plugins. This is because the Psychtoolbox stopped working, and I don’t want to fix it:
while 1
% perform task
% poll keyboard, do not stop, just check if a button is pressed
if button is pressed
break;
end
end
The faster the polling happens, the better.I have been trying to figure out for a while how to accomplish the following, but I don’t want to use plugins. This is because the Psychtoolbox stopped working, and I don’t want to fix it:
while 1
% perform task
% poll keyboard, do not stop, just check if a button is pressed
if button is pressed
break;
end
end
The faster the polling happens, the better. I have been trying to figure out for a while how to accomplish the following, but I don’t want to use plugins. This is because the Psychtoolbox stopped working, and I don’t want to fix it:
while 1
% perform task
% poll keyboard, do not stop, just check if a button is pressed
if button is pressed
break;
end
end
The faster the polling happens, the better. psychtoolbox, keyboard, user input MATLAB Answers — New Questions
Why Spatial referencing information is missing or not readable directly from ENVI format data?
I have created ENVI formatted data along with its header file. I can open it in ENVI software and even extracted the data using shape file manually. However, when I tried to extract the data using same shape file from MATLAB code given below;
[img, R] = readgeoraster(img_file.name);
% Verify if R contains the necessary spatial referencing information
if isempty(R)
error(‘Spatial referencing information is missing or not readable directly.’);
end
It gives following error
Spatial referencing information is missing or not readable directly
I am attaching the ENVI header file and request you to please suggest me how to use it.
ChaharI have created ENVI formatted data along with its header file. I can open it in ENVI software and even extracted the data using shape file manually. However, when I tried to extract the data using same shape file from MATLAB code given below;
[img, R] = readgeoraster(img_file.name);
% Verify if R contains the necessary spatial referencing information
if isempty(R)
error(‘Spatial referencing information is missing or not readable directly.’);
end
It gives following error
Spatial referencing information is missing or not readable directly
I am attaching the ENVI header file and request you to please suggest me how to use it.
Chahar I have created ENVI formatted data along with its header file. I can open it in ENVI software and even extracted the data using shape file manually. However, when I tried to extract the data using same shape file from MATLAB code given below;
[img, R] = readgeoraster(img_file.name);
% Verify if R contains the necessary spatial referencing information
if isempty(R)
error(‘Spatial referencing information is missing or not readable directly.’);
end
It gives following error
Spatial referencing information is missing or not readable directly
I am attaching the ENVI header file and request you to please suggest me how to use it.
Chahar spatial referencing information is missing? MATLAB Answers — New Questions
Exporting MATLAB code to word file
I want to export my MATLAB code in word file. If I opt for print command directly, the code is getting printed, but the vertical lines that connect the start and end of a loop are not getting shown. For example,
for d=1:s
fraction(d)=vert(d)/add;
if(d==1)
cumulative(d)=fraction(d);
continue
end
cumulative(d)=cumulative(d-1)+fraction(d)
end
The vertical line connecting the For loop with its corresponding end is not appearing. Any suggestions how I can do that ?I want to export my MATLAB code in word file. If I opt for print command directly, the code is getting printed, but the vertical lines that connect the start and end of a loop are not getting shown. For example,
for d=1:s
fraction(d)=vert(d)/add;
if(d==1)
cumulative(d)=fraction(d);
continue
end
cumulative(d)=cumulative(d-1)+fraction(d)
end
The vertical line connecting the For loop with its corresponding end is not appearing. Any suggestions how I can do that ? I want to export my MATLAB code in word file. If I opt for print command directly, the code is getting printed, but the vertical lines that connect the start and end of a loop are not getting shown. For example,
for d=1:s
fraction(d)=vert(d)/add;
if(d==1)
cumulative(d)=fraction(d);
continue
end
cumulative(d)=cumulative(d-1)+fraction(d)
end
The vertical line connecting the For loop with its corresponding end is not appearing. Any suggestions how I can do that ? print MATLAB Answers — New Questions
how to plot the motor chamber pressure and the vacuum thrust as a function of both time and web assuming quasi-steady state (equilibrium)
I have computed the equilibrium pressure assuming a quasi steady state condition: using the following eq attached to this question and below is my code. How do I plot Pc_eq as a function of time?
clear all
%% Step 1
% ========================================================================= %
% Basing on the motor and propellant data indicated in Table 1 and on the
% burning surface evolution shown in Figs. 5 and 6 and assuming a constant
% chambre temperature profile compute the following curves without taking
% into account the non-ideal parameters.
%% Step 1.1
%Find: The motor chamber pressure and the vaccume thrust as a
% function of both time and web assuming quasi-steady state (equilibrium)
% User inputs – First stage P80 SRM
% ========================================================================= %
mp = 88000; % Propellant Mass [kg]
ms = 7330; % Structural mass [kg]
l = 10.6; % length [m]
d = 3.0; % Diameter [m]
f = 3015; % Max thrust(vaccum) [kN]
bt = 110; % Buring time [sec]
isp = 280; % Specifi Impulse (vaccuum) [sec]
% User inputs – Propellant Ballistic Properties
% ========================================================================= %
a = 1.847e-05; % Temperature coefficient @ 300 K [m/s * Pae-0.4]
n = 0.4; % Combustion index
tau = 0.0015; % Temperature sensitivity [k^-1]
rho = 1790; % Density [kg/m^3]
% User inputs – Propellant thermochemocal properties
% ========================================================================= %
T_F = 3550; % Flame temperature [K]
M = 29; % Molecular mass [kg/kmole]
gamma = 1.13; % Specific heat ratio
% User inputs – Motor geometrical properties
% ========================================================================= %
d_throat = 0.496; % Throat diameter [m]
e = 16; % expansion ratio
v_c = 8.6; % Initial chamber volume [m^3]
v_frac = 0.85; % volumetric loading fraction (V_c/(V_c+V_p)
% constants
% ========================================================================= %
r = 8314.5 % gas constant [J/kmol)
% Calculations
% Find: The motor chamber pressure and the vaccum thrust as a
% ========================================================================= %
a_t = pi* (d_throat/2)^2; % Thrat area [m^2]
m_dot = mp/bt; % mass flow rate [kg/s]
s_b = 48; % burning surface area – pulled from the Sb vs Y plot [m^2]
cap_gamma = sqrt (gamma * (2/(gamma + 1))^((gamma+1)/(gamma-1))); % capital gamma
c_star = (1/cap_gamma)*sqrt((r*T_F)/M);
K = s_b/a_t; % Klemmung
Pc_eq = (a *rho*c_star*K)^(1/(1-n));I have computed the equilibrium pressure assuming a quasi steady state condition: using the following eq attached to this question and below is my code. How do I plot Pc_eq as a function of time?
clear all
%% Step 1
% ========================================================================= %
% Basing on the motor and propellant data indicated in Table 1 and on the
% burning surface evolution shown in Figs. 5 and 6 and assuming a constant
% chambre temperature profile compute the following curves without taking
% into account the non-ideal parameters.
%% Step 1.1
%Find: The motor chamber pressure and the vaccume thrust as a
% function of both time and web assuming quasi-steady state (equilibrium)
% User inputs – First stage P80 SRM
% ========================================================================= %
mp = 88000; % Propellant Mass [kg]
ms = 7330; % Structural mass [kg]
l = 10.6; % length [m]
d = 3.0; % Diameter [m]
f = 3015; % Max thrust(vaccum) [kN]
bt = 110; % Buring time [sec]
isp = 280; % Specifi Impulse (vaccuum) [sec]
% User inputs – Propellant Ballistic Properties
% ========================================================================= %
a = 1.847e-05; % Temperature coefficient @ 300 K [m/s * Pae-0.4]
n = 0.4; % Combustion index
tau = 0.0015; % Temperature sensitivity [k^-1]
rho = 1790; % Density [kg/m^3]
% User inputs – Propellant thermochemocal properties
% ========================================================================= %
T_F = 3550; % Flame temperature [K]
M = 29; % Molecular mass [kg/kmole]
gamma = 1.13; % Specific heat ratio
% User inputs – Motor geometrical properties
% ========================================================================= %
d_throat = 0.496; % Throat diameter [m]
e = 16; % expansion ratio
v_c = 8.6; % Initial chamber volume [m^3]
v_frac = 0.85; % volumetric loading fraction (V_c/(V_c+V_p)
% constants
% ========================================================================= %
r = 8314.5 % gas constant [J/kmol)
% Calculations
% Find: The motor chamber pressure and the vaccum thrust as a
% ========================================================================= %
a_t = pi* (d_throat/2)^2; % Thrat area [m^2]
m_dot = mp/bt; % mass flow rate [kg/s]
s_b = 48; % burning surface area – pulled from the Sb vs Y plot [m^2]
cap_gamma = sqrt (gamma * (2/(gamma + 1))^((gamma+1)/(gamma-1))); % capital gamma
c_star = (1/cap_gamma)*sqrt((r*T_F)/M);
K = s_b/a_t; % Klemmung
Pc_eq = (a *rho*c_star*K)^(1/(1-n)); I have computed the equilibrium pressure assuming a quasi steady state condition: using the following eq attached to this question and below is my code. How do I plot Pc_eq as a function of time?
clear all
%% Step 1
% ========================================================================= %
% Basing on the motor and propellant data indicated in Table 1 and on the
% burning surface evolution shown in Figs. 5 and 6 and assuming a constant
% chambre temperature profile compute the following curves without taking
% into account the non-ideal parameters.
%% Step 1.1
%Find: The motor chamber pressure and the vaccume thrust as a
% function of both time and web assuming quasi-steady state (equilibrium)
% User inputs – First stage P80 SRM
% ========================================================================= %
mp = 88000; % Propellant Mass [kg]
ms = 7330; % Structural mass [kg]
l = 10.6; % length [m]
d = 3.0; % Diameter [m]
f = 3015; % Max thrust(vaccum) [kN]
bt = 110; % Buring time [sec]
isp = 280; % Specifi Impulse (vaccuum) [sec]
% User inputs – Propellant Ballistic Properties
% ========================================================================= %
a = 1.847e-05; % Temperature coefficient @ 300 K [m/s * Pae-0.4]
n = 0.4; % Combustion index
tau = 0.0015; % Temperature sensitivity [k^-1]
rho = 1790; % Density [kg/m^3]
% User inputs – Propellant thermochemocal properties
% ========================================================================= %
T_F = 3550; % Flame temperature [K]
M = 29; % Molecular mass [kg/kmole]
gamma = 1.13; % Specific heat ratio
% User inputs – Motor geometrical properties
% ========================================================================= %
d_throat = 0.496; % Throat diameter [m]
e = 16; % expansion ratio
v_c = 8.6; % Initial chamber volume [m^3]
v_frac = 0.85; % volumetric loading fraction (V_c/(V_c+V_p)
% constants
% ========================================================================= %
r = 8314.5 % gas constant [J/kmol)
% Calculations
% Find: The motor chamber pressure and the vaccum thrust as a
% ========================================================================= %
a_t = pi* (d_throat/2)^2; % Thrat area [m^2]
m_dot = mp/bt; % mass flow rate [kg/s]
s_b = 48; % burning surface area – pulled from the Sb vs Y plot [m^2]
cap_gamma = sqrt (gamma * (2/(gamma + 1))^((gamma+1)/(gamma-1))); % capital gamma
c_star = (1/cap_gamma)*sqrt((r*T_F)/M);
K = s_b/a_t; % Klemmung
Pc_eq = (a *rho*c_star*K)^(1/(1-n)); quassi steady state MATLAB Answers — New Questions
How can I solve the error of too many input arguments in fuzzy logic toolbox?
I’m new here so i don’t understand a thing. I was interested in fuzzy logic for food control operations with the help of matlab. I took the help of a decades old book for the program; i’m seeing this and i have no clue
for i = 1:k
CC = [fuzzy(S1(i,:), Qrel(i,:)); fuzzy(S2(i,:), Qrel(i,:)); fuzzy(S3(i,:), Qrel(i,:))];
So=So+CC ;
end
Error using fuzzy
Too many input arguments.
please help out
*see page 397 in the attached pdf for clarity.I’m new here so i don’t understand a thing. I was interested in fuzzy logic for food control operations with the help of matlab. I took the help of a decades old book for the program; i’m seeing this and i have no clue
for i = 1:k
CC = [fuzzy(S1(i,:), Qrel(i,:)); fuzzy(S2(i,:), Qrel(i,:)); fuzzy(S3(i,:), Qrel(i,:))];
So=So+CC ;
end
Error using fuzzy
Too many input arguments.
please help out
*see page 397 in the attached pdf for clarity. I’m new here so i don’t understand a thing. I was interested in fuzzy logic for food control operations with the help of matlab. I took the help of a decades old book for the program; i’m seeing this and i have no clue
for i = 1:k
CC = [fuzzy(S1(i,:), Qrel(i,:)); fuzzy(S2(i,:), Qrel(i,:)); fuzzy(S3(i,:), Qrel(i,:))];
So=So+CC ;
end
Error using fuzzy
Too many input arguments.
please help out
*see page 397 in the attached pdf for clarity. fuzzy, fuzzy logic, input, arrays, variables MATLAB Answers — New Questions
How to replace negative elements in a Matrix with zeros?
A = [2, 3, -1, 5;
-1, 4, -7, -3;
-6, 0, 3, 9;
7, 6, -3, 8];
B = [9;
17;
15;
-3];
AI = inv(A)
I = A*AI
X = AI*B
A*X
Now I am trying to set up a nested for loop to redefine negative elements in A. I need to replace negative elements in A with a zero. How do I go about doing this?A = [2, 3, -1, 5;
-1, 4, -7, -3;
-6, 0, 3, 9;
7, 6, -3, 8];
B = [9;
17;
15;
-3];
AI = inv(A)
I = A*AI
X = AI*B
A*X
Now I am trying to set up a nested for loop to redefine negative elements in A. I need to replace negative elements in A with a zero. How do I go about doing this? A = [2, 3, -1, 5;
-1, 4, -7, -3;
-6, 0, 3, 9;
7, 6, -3, 8];
B = [9;
17;
15;
-3];
AI = inv(A)
I = A*AI
X = AI*B
A*X
Now I am trying to set up a nested for loop to redefine negative elements in A. I need to replace negative elements in A with a zero. How do I go about doing this? matrix, for loops MATLAB Answers — New Questions
How can I get Runge-Kutta method to display exponential decay when solving a two dimensional wave equation?
Hello, I am trying to create a wave equation solver using the method of lines and Runge-Kutta to numerically approximate the solution. If my initial conditions are u(0,x,y)=sin(pix)sin(piy), u_t(0,x,y)=0, then I know the exact solution to be e^(-2pi^2)sin(pix)sin(piy). I plot both my approximation (figure 1) and the exact solution (figure 2) below. Since the exact solution has exponential decay I would expect to see that in the approximation, but it just oscillates between -1 and 1 like a regular sine function. Can anyone point me towards what is wrong with my program? I think it has to do with my choices for n, m, and tf but I’m not sure. How can I fix this without changing the solution method? Any advice is appreciated!
n = 200; m = 100; tf = .5;
x = linspace(0,1,n+1)’; xs = x(2:end-1); dx = 1/n;
t = linspace(0,tf,m+1)’; dt = tf/m;
[X,Y] = meshgrid(x,x); [Xs,Ys] = meshgrid(xs,xs);
% Building the Laplacian
d = kron(ones(n,1),[1,-2,1]);
D2 = (1/dx^2) * spdiags(d, -1:1, n-1, n-1);
I = speye(n-1);
L = kron(I,D2) + kron(D2,I);
% Setting up function
F = @(t,w) [w((n-1)^2+1:end); L*w(1:(n-1)^2)];
% Initial conditions
f = @(x,y) sin(pi*x) .* sin(pi*y);
w0 = [reshape(f(Xs,Ys),[(n-1)^2,1]); zeros((n-1)^2,1)];
% Runge-Kutta
w = RK_solver(F,t,w0);
% Plotting
figure(1);
for i = 1:m+1
colormap(spring);
u = reshape(w(1:(n-1)^2,i),n-1,n-1);
z = zeros(n+1);
z(2:end-1,2:end-1) = u;
surf(X,Y,z); zlim([-1 1]);
pause(0.05)
end
% Exact for comparison
figure(2);
for i = 0:dt:tf
colormap(autumn);
U = exp(-2*pi^2*i) .* sin(pi*X) .* sin(pi*Y);
surf(X,Y,U); zlim([0 1]);
pause(0.05);
end
And here’s the Runge-Kutta solver I used:
function w = RK_solver(F,t,c)
n = length(t)-1; % number of subdivisions
m = length(c); % number of equations
dt = t(2)-t(1); % change in t
w = zeros(m,n+1); % to store answers
w(:,1) = c; % initial condition
% RK loop
for i = 1:n
k1 = dt.*F(t(i), w(:,i));
k2 = dt.*F(t(i)+(dt/2), w(:,i)+(k1/2));
k3 = dt.*F(t(i)+(dt/2), w(:,i)+(k2/2));
k4 = dt.*F(t(i)+dt, w(:,i)+k3);
% Weighted average of k values
k = (k1+(2*k2)+(2*k3)+k4)/6;
% Fills in next column of w
w(:,i+1) = w(:,i) + k;
endHello, I am trying to create a wave equation solver using the method of lines and Runge-Kutta to numerically approximate the solution. If my initial conditions are u(0,x,y)=sin(pix)sin(piy), u_t(0,x,y)=0, then I know the exact solution to be e^(-2pi^2)sin(pix)sin(piy). I plot both my approximation (figure 1) and the exact solution (figure 2) below. Since the exact solution has exponential decay I would expect to see that in the approximation, but it just oscillates between -1 and 1 like a regular sine function. Can anyone point me towards what is wrong with my program? I think it has to do with my choices for n, m, and tf but I’m not sure. How can I fix this without changing the solution method? Any advice is appreciated!
n = 200; m = 100; tf = .5;
x = linspace(0,1,n+1)’; xs = x(2:end-1); dx = 1/n;
t = linspace(0,tf,m+1)’; dt = tf/m;
[X,Y] = meshgrid(x,x); [Xs,Ys] = meshgrid(xs,xs);
% Building the Laplacian
d = kron(ones(n,1),[1,-2,1]);
D2 = (1/dx^2) * spdiags(d, -1:1, n-1, n-1);
I = speye(n-1);
L = kron(I,D2) + kron(D2,I);
% Setting up function
F = @(t,w) [w((n-1)^2+1:end); L*w(1:(n-1)^2)];
% Initial conditions
f = @(x,y) sin(pi*x) .* sin(pi*y);
w0 = [reshape(f(Xs,Ys),[(n-1)^2,1]); zeros((n-1)^2,1)];
% Runge-Kutta
w = RK_solver(F,t,w0);
% Plotting
figure(1);
for i = 1:m+1
colormap(spring);
u = reshape(w(1:(n-1)^2,i),n-1,n-1);
z = zeros(n+1);
z(2:end-1,2:end-1) = u;
surf(X,Y,z); zlim([-1 1]);
pause(0.05)
end
% Exact for comparison
figure(2);
for i = 0:dt:tf
colormap(autumn);
U = exp(-2*pi^2*i) .* sin(pi*X) .* sin(pi*Y);
surf(X,Y,U); zlim([0 1]);
pause(0.05);
end
And here’s the Runge-Kutta solver I used:
function w = RK_solver(F,t,c)
n = length(t)-1; % number of subdivisions
m = length(c); % number of equations
dt = t(2)-t(1); % change in t
w = zeros(m,n+1); % to store answers
w(:,1) = c; % initial condition
% RK loop
for i = 1:n
k1 = dt.*F(t(i), w(:,i));
k2 = dt.*F(t(i)+(dt/2), w(:,i)+(k1/2));
k3 = dt.*F(t(i)+(dt/2), w(:,i)+(k2/2));
k4 = dt.*F(t(i)+dt, w(:,i)+k3);
% Weighted average of k values
k = (k1+(2*k2)+(2*k3)+k4)/6;
% Fills in next column of w
w(:,i+1) = w(:,i) + k;
end Hello, I am trying to create a wave equation solver using the method of lines and Runge-Kutta to numerically approximate the solution. If my initial conditions are u(0,x,y)=sin(pix)sin(piy), u_t(0,x,y)=0, then I know the exact solution to be e^(-2pi^2)sin(pix)sin(piy). I plot both my approximation (figure 1) and the exact solution (figure 2) below. Since the exact solution has exponential decay I would expect to see that in the approximation, but it just oscillates between -1 and 1 like a regular sine function. Can anyone point me towards what is wrong with my program? I think it has to do with my choices for n, m, and tf but I’m not sure. How can I fix this without changing the solution method? Any advice is appreciated!
n = 200; m = 100; tf = .5;
x = linspace(0,1,n+1)’; xs = x(2:end-1); dx = 1/n;
t = linspace(0,tf,m+1)’; dt = tf/m;
[X,Y] = meshgrid(x,x); [Xs,Ys] = meshgrid(xs,xs);
% Building the Laplacian
d = kron(ones(n,1),[1,-2,1]);
D2 = (1/dx^2) * spdiags(d, -1:1, n-1, n-1);
I = speye(n-1);
L = kron(I,D2) + kron(D2,I);
% Setting up function
F = @(t,w) [w((n-1)^2+1:end); L*w(1:(n-1)^2)];
% Initial conditions
f = @(x,y) sin(pi*x) .* sin(pi*y);
w0 = [reshape(f(Xs,Ys),[(n-1)^2,1]); zeros((n-1)^2,1)];
% Runge-Kutta
w = RK_solver(F,t,w0);
% Plotting
figure(1);
for i = 1:m+1
colormap(spring);
u = reshape(w(1:(n-1)^2,i),n-1,n-1);
z = zeros(n+1);
z(2:end-1,2:end-1) = u;
surf(X,Y,z); zlim([-1 1]);
pause(0.05)
end
% Exact for comparison
figure(2);
for i = 0:dt:tf
colormap(autumn);
U = exp(-2*pi^2*i) .* sin(pi*X) .* sin(pi*Y);
surf(X,Y,U); zlim([0 1]);
pause(0.05);
end
And here’s the Runge-Kutta solver I used:
function w = RK_solver(F,t,c)
n = length(t)-1; % number of subdivisions
m = length(c); % number of equations
dt = t(2)-t(1); % change in t
w = zeros(m,n+1); % to store answers
w(:,1) = c; % initial condition
% RK loop
for i = 1:n
k1 = dt.*F(t(i), w(:,i));
k2 = dt.*F(t(i)+(dt/2), w(:,i)+(k1/2));
k3 = dt.*F(t(i)+(dt/2), w(:,i)+(k2/2));
k4 = dt.*F(t(i)+dt, w(:,i)+k3);
% Weighted average of k values
k = (k1+(2*k2)+(2*k3)+k4)/6;
% Fills in next column of w
w(:,i+1) = w(:,i) + k;
end pde, differential equations, numerical analysis, numerical approximation, runge-kutta, runge kutta, method of lines, partial differential equations, wave equation, surf MATLAB Answers — New Questions
How to solve swallowtail integral
What do we do with this caustic integral?The simple way of writing an integral doesn’t seem to compute it well.What do we do with this caustic integral?The simple way of writing an integral doesn’t seem to compute it well. What do we do with this caustic integral?The simple way of writing an integral doesn’t seem to compute it well. swallowtail integral MATLAB Answers — New Questions
How to save matrix as a “pretty print” image?
I’m creating animations based on abelian sandpile models, where the sandpile heights (integers>0) are used as index values to convert the matrices into color images (ind2rgb). I would like to create companion animations that show the original data in indexed, matrix form, hence the ask for saving a matrix in "pretty print" format as an image. I’ll probably use matrices that are at max 20×20; otherwise, I imagine it’ll be hard to keep the "font size" of the numbers large enough.
Depending on the model size, the animations are upwards of 10,000+ frames, so I don’t want to do any screenshots or manual saving, even for a smaller/more basic example. But it would be a similar result as screenshotting the matrix as viewed in either the Command Window or Variables workspace. Something like this but without needing the commands and label:
If there’s not a quick solution/hack, I may have to go the route of building out a separate function to handle this, which might be fun too.I’m creating animations based on abelian sandpile models, where the sandpile heights (integers>0) are used as index values to convert the matrices into color images (ind2rgb). I would like to create companion animations that show the original data in indexed, matrix form, hence the ask for saving a matrix in "pretty print" format as an image. I’ll probably use matrices that are at max 20×20; otherwise, I imagine it’ll be hard to keep the "font size" of the numbers large enough.
Depending on the model size, the animations are upwards of 10,000+ frames, so I don’t want to do any screenshots or manual saving, even for a smaller/more basic example. But it would be a similar result as screenshotting the matrix as viewed in either the Command Window or Variables workspace. Something like this but without needing the commands and label:
If there’s not a quick solution/hack, I may have to go the route of building out a separate function to handle this, which might be fun too. I’m creating animations based on abelian sandpile models, where the sandpile heights (integers>0) are used as index values to convert the matrices into color images (ind2rgb). I would like to create companion animations that show the original data in indexed, matrix form, hence the ask for saving a matrix in "pretty print" format as an image. I’ll probably use matrices that are at max 20×20; otherwise, I imagine it’ll be hard to keep the "font size" of the numbers large enough.
Depending on the model size, the animations are upwards of 10,000+ frames, so I don’t want to do any screenshots or manual saving, even for a smaller/more basic example. But it would be a similar result as screenshotting the matrix as viewed in either the Command Window or Variables workspace. Something like this but without needing the commands and label:
If there’s not a quick solution/hack, I may have to go the route of building out a separate function to handle this, which might be fun too. matrix, image MATLAB Answers — New Questions
Add first element to a cell array
Dear,
I would like to add a new element in the first position in an cell array
For example if ArrCell={[1],[2],[3],[4],[5]} is the existing cell and [new] is a matrix. I would like to get
ArrCell={[new],[1],[2],[3],[4],[5]}
Of course, I can get this result using a temporal cell array and looping over all the elements of the existing one, but the quesion is if there an efficient way to get this result
Thanks in advance,Dear,
I would like to add a new element in the first position in an cell array
For example if ArrCell={[1],[2],[3],[4],[5]} is the existing cell and [new] is a matrix. I would like to get
ArrCell={[new],[1],[2],[3],[4],[5]}
Of course, I can get this result using a temporal cell array and looping over all the elements of the existing one, but the quesion is if there an efficient way to get this result
Thanks in advance, Dear,
I would like to add a new element in the first position in an cell array
For example if ArrCell={[1],[2],[3],[4],[5]} is the existing cell and [new] is a matrix. I would like to get
ArrCell={[new],[1],[2],[3],[4],[5]}
Of course, I can get this result using a temporal cell array and looping over all the elements of the existing one, but the quesion is if there an efficient way to get this result
Thanks in advance, cell array MATLAB Answers — New Questions
What is the difference between cell and array matrix.
The example is how to take the data from 65th row of the fifth cell
Can I think about taking the data at row 65 and column fifth in a vector?The example is how to take the data from 65th row of the fifth cell
Can I think about taking the data at row 65 and column fifth in a vector? The example is how to take the data from 65th row of the fifth cell
Can I think about taking the data at row 65 and column fifth in a vector? matrix array MATLAB Answers — New Questions
Parallel execution using parfeval does not modify input handle object as expected
I’m trying to implement parallelism – I want to run my function in parallel, and it’s supposed to modify its input OOP object asynchronously.
Here is a simplified test implementation that runs, but the input object is NOT modified by the function calls.
if isempty(gcp(‘nocreate’))
% Start a new parallel pool
parpool();
end
futs= Futures();
nodeCount = NodeCount(1);
for i=1:5
f=parfeval(@Testparffun,0,nodeCount);
futs.append(f)
end
If the parfeval is replaced by the normal function call, it works as expected. With parfeval, the code completes without errors, but nodeCount is not modified .
Here is also the code for Testparffun and NodeCount:
function Testparffun(counter)
counter.increment;
pause(5);
end
And NodeCount:
classdef NodeCount < handle
%NODECOUNT Summary of this class goes here
% Detailed explanation goes here
properties
count
end
methods
function obj = NodeCount(inputArg1)
%NODECOUNT Construct an instance of this class
% Detailed explanation goes here
obj.count =inputArg1 ;
end
function increment(obj)
%METHOD1 Summary of this method goes here
% Detailed explanation goes here
obj.count = obj.count + 1;
end
end
end
The goal of this test would be that each async call increments the value of nodeCount.count by 1, but it does nothing. I understand that I would need to implement some locks to avoid race conditions, etc. but even if the loop makes just one call, it still doesn’t affect the object. Any ideas?I’m trying to implement parallelism – I want to run my function in parallel, and it’s supposed to modify its input OOP object asynchronously.
Here is a simplified test implementation that runs, but the input object is NOT modified by the function calls.
if isempty(gcp(‘nocreate’))
% Start a new parallel pool
parpool();
end
futs= Futures();
nodeCount = NodeCount(1);
for i=1:5
f=parfeval(@Testparffun,0,nodeCount);
futs.append(f)
end
If the parfeval is replaced by the normal function call, it works as expected. With parfeval, the code completes without errors, but nodeCount is not modified .
Here is also the code for Testparffun and NodeCount:
function Testparffun(counter)
counter.increment;
pause(5);
end
And NodeCount:
classdef NodeCount < handle
%NODECOUNT Summary of this class goes here
% Detailed explanation goes here
properties
count
end
methods
function obj = NodeCount(inputArg1)
%NODECOUNT Construct an instance of this class
% Detailed explanation goes here
obj.count =inputArg1 ;
end
function increment(obj)
%METHOD1 Summary of this method goes here
% Detailed explanation goes here
obj.count = obj.count + 1;
end
end
end
The goal of this test would be that each async call increments the value of nodeCount.count by 1, but it does nothing. I understand that I would need to implement some locks to avoid race conditions, etc. but even if the loop makes just one call, it still doesn’t affect the object. Any ideas? I’m trying to implement parallelism – I want to run my function in parallel, and it’s supposed to modify its input OOP object asynchronously.
Here is a simplified test implementation that runs, but the input object is NOT modified by the function calls.
if isempty(gcp(‘nocreate’))
% Start a new parallel pool
parpool();
end
futs= Futures();
nodeCount = NodeCount(1);
for i=1:5
f=parfeval(@Testparffun,0,nodeCount);
futs.append(f)
end
If the parfeval is replaced by the normal function call, it works as expected. With parfeval, the code completes without errors, but nodeCount is not modified .
Here is also the code for Testparffun and NodeCount:
function Testparffun(counter)
counter.increment;
pause(5);
end
And NodeCount:
classdef NodeCount < handle
%NODECOUNT Summary of this class goes here
% Detailed explanation goes here
properties
count
end
methods
function obj = NodeCount(inputArg1)
%NODECOUNT Construct an instance of this class
% Detailed explanation goes here
obj.count =inputArg1 ;
end
function increment(obj)
%METHOD1 Summary of this method goes here
% Detailed explanation goes here
obj.count = obj.count + 1;
end
end
end
The goal of this test would be that each async call increments the value of nodeCount.count by 1, but it does nothing. I understand that I would need to implement some locks to avoid race conditions, etc. but even if the loop makes just one call, it still doesn’t affect the object. Any ideas? parallel computing MATLAB Answers — New Questions