Category: News
Azure Devops pass pipeline parameter between stages
Hello,
How can I pass the parameter from stageA to stageB?
The parameter output is an output from bicep file, called by a job.
I would like to use this output on the next stage.
Istvan
Hello, How can I pass the parameter from stageA to stageB?The parameter output is an output from bicep file, called by a job.I would like to use this output on the next stage. Istvan Read More
2021b & RHEL8
Does RHEL8 support 2021b? We are having an issue getting 2021b to install on RHEL8 with the following errors:
We are mounting the .iso using mount -o loop <iso file name> /mnt/iso and we are getting this error:
/mnt/iso/bin/glnxa64/MathWorksProductInstaller: error while loading shared libraries: libmwfoundation_log.so: cannot open shared object file: No such file or directory
If you do a search for the libmwfoundation_log.so you can find it on the mounted CD so not sure why it thinks it’s not there.Does RHEL8 support 2021b? We are having an issue getting 2021b to install on RHEL8 with the following errors:
We are mounting the .iso using mount -o loop <iso file name> /mnt/iso and we are getting this error:
/mnt/iso/bin/glnxa64/MathWorksProductInstaller: error while loading shared libraries: libmwfoundation_log.so: cannot open shared object file: No such file or directory
If you do a search for the libmwfoundation_log.so you can find it on the mounted CD so not sure why it thinks it’s not there. Does RHEL8 support 2021b? We are having an issue getting 2021b to install on RHEL8 with the following errors:
We are mounting the .iso using mount -o loop <iso file name> /mnt/iso and we are getting this error:
/mnt/iso/bin/glnxa64/MathWorksProductInstaller: error while loading shared libraries: libmwfoundation_log.so: cannot open shared object file: No such file or directory
If you do a search for the libmwfoundation_log.so you can find it on the mounted CD so not sure why it thinks it’s not there. rhel8, 2021b, matlab, installation MATLAB Answers — New Questions
Non-homogenous spatial and temporal grids
Good day family. I am solving a system of 2 PDEs using the pdepe package (The algorithm is in the matlab documentation: https://www.mathworks.com/help/matlab/math/solve-system-of-pdes.html ). The parameters of the system depend on some observations (data) and the spatial axis as well as shown in my code below:
% beggining of the code
function non_constant_spatial_and_temporal_axis
% pdebc function — Neumann BCs
function [pl, ql, pr, qr] = pdebc(~, ~, ~, ~, ~)
pl = [0; 0];
ql = [1; 1];
pr = [0; 0];
qr = [1;1];
end
% pdeic function
function u0 = pdeic(~)
u0 = [10;5];
end
% pdefun function
function [c, f, s] = pdefun(x, ~, u, dudx)
D1 = 0.024;
D2 = 0.0170;
c = [1; 1];
f = [D1; D2].*dudx;
t1=[1,0,3,4,5,3,2,3,2,3,3,2,3,4,5,6,7,5,4,3,3,2,2,1,3,2,4,5]; % This data is the observations which represent the temporal grid
x_interpolate = linspace(0, 10, length(t1)); % Interpolation of the data so that it can match with the spatial grid
t1_interpolated = interp1(x_interpolate,t1,x,’linear’);
alpha1 = 0.5*(1-sin(2*t1_interpolated)); % The parameters alpha1 and alpha2 depends on the observations in t1
% I want to define alpha1 in such a way that it is a function of bth
% time and space x such that alpha1(t,x)=
% 0.5*(1-sin(2*t1_interpolated))*(1-sin(2*x)) so that I can visualize
% the oscillations on both the time and the space axis at the same
% time.
alpha2 = 0.5*(1-sin(2*t1_interpolated)); % The parameter alpha2 depends on the observations in t1
% alpha2(t,x)=0.5*(1-sin(2*t1_interpolated))*(1-sin(2*x));
s = [alpha1.*u(2).*(u(2).^2 -1); -alpha2.* u(1).*(u(2)-1)];
end
% Main script for running the code
clear all; close all; clc;
m = 0;
t = linspace(0, 5, 50); % time variable
x = linspace(0, 10,50); % space varable
sol = pdepe(m, @pdefun, @pdeic, @pdebc, x, t);
% Extract the solutions
u1 = sol(:, :, 1);
u2 = sol(:, :, 2);
% Plots
figure(1)
surf(x, t, u1)
title(‘u_1(x,t)’)
xlabel(‘Time t’)
ylabel(‘Postion x’)
figure(2)
surf(x, t, u2)
title(‘u_2(x,t)’)
xlabel(‘Time t’)
ylabel(‘Position x’)
end
%end of code
The code is running well but its not giving me oscillations on the spatial axis, like what I am getting on the temporal axis. I wish to be able to observe the spatial variation using a sinusoidal function like the sin function and I also view the oscillations on the spatial and temporal axis. Note that the oscillations on the temporal axis are due to the data while the ones on the spatial axis are due to the use of the sinusoidal function. May you kindly assist me resolve this. I have tried substituting alpha1 with alpha1=0.5*(1-sin(2*t1_interpolated))*(1-sin(2*x)); but then I observe that the term (1-sin(2*x)) reduces the value of alpha1 and the effect is only felt on the temporal axis and not in the spatial axis. What can I do to have the effect felt on the spatial axis as well?Good day family. I am solving a system of 2 PDEs using the pdepe package (The algorithm is in the matlab documentation: https://www.mathworks.com/help/matlab/math/solve-system-of-pdes.html ). The parameters of the system depend on some observations (data) and the spatial axis as well as shown in my code below:
% beggining of the code
function non_constant_spatial_and_temporal_axis
% pdebc function — Neumann BCs
function [pl, ql, pr, qr] = pdebc(~, ~, ~, ~, ~)
pl = [0; 0];
ql = [1; 1];
pr = [0; 0];
qr = [1;1];
end
% pdeic function
function u0 = pdeic(~)
u0 = [10;5];
end
% pdefun function
function [c, f, s] = pdefun(x, ~, u, dudx)
D1 = 0.024;
D2 = 0.0170;
c = [1; 1];
f = [D1; D2].*dudx;
t1=[1,0,3,4,5,3,2,3,2,3,3,2,3,4,5,6,7,5,4,3,3,2,2,1,3,2,4,5]; % This data is the observations which represent the temporal grid
x_interpolate = linspace(0, 10, length(t1)); % Interpolation of the data so that it can match with the spatial grid
t1_interpolated = interp1(x_interpolate,t1,x,’linear’);
alpha1 = 0.5*(1-sin(2*t1_interpolated)); % The parameters alpha1 and alpha2 depends on the observations in t1
% I want to define alpha1 in such a way that it is a function of bth
% time and space x such that alpha1(t,x)=
% 0.5*(1-sin(2*t1_interpolated))*(1-sin(2*x)) so that I can visualize
% the oscillations on both the time and the space axis at the same
% time.
alpha2 = 0.5*(1-sin(2*t1_interpolated)); % The parameter alpha2 depends on the observations in t1
% alpha2(t,x)=0.5*(1-sin(2*t1_interpolated))*(1-sin(2*x));
s = [alpha1.*u(2).*(u(2).^2 -1); -alpha2.* u(1).*(u(2)-1)];
end
% Main script for running the code
clear all; close all; clc;
m = 0;
t = linspace(0, 5, 50); % time variable
x = linspace(0, 10,50); % space varable
sol = pdepe(m, @pdefun, @pdeic, @pdebc, x, t);
% Extract the solutions
u1 = sol(:, :, 1);
u2 = sol(:, :, 2);
% Plots
figure(1)
surf(x, t, u1)
title(‘u_1(x,t)’)
xlabel(‘Time t’)
ylabel(‘Postion x’)
figure(2)
surf(x, t, u2)
title(‘u_2(x,t)’)
xlabel(‘Time t’)
ylabel(‘Position x’)
end
%end of code
The code is running well but its not giving me oscillations on the spatial axis, like what I am getting on the temporal axis. I wish to be able to observe the spatial variation using a sinusoidal function like the sin function and I also view the oscillations on the spatial and temporal axis. Note that the oscillations on the temporal axis are due to the data while the ones on the spatial axis are due to the use of the sinusoidal function. May you kindly assist me resolve this. I have tried substituting alpha1 with alpha1=0.5*(1-sin(2*t1_interpolated))*(1-sin(2*x)); but then I observe that the term (1-sin(2*x)) reduces the value of alpha1 and the effect is only felt on the temporal axis and not in the spatial axis. What can I do to have the effect felt on the spatial axis as well? Good day family. I am solving a system of 2 PDEs using the pdepe package (The algorithm is in the matlab documentation: https://www.mathworks.com/help/matlab/math/solve-system-of-pdes.html ). The parameters of the system depend on some observations (data) and the spatial axis as well as shown in my code below:
% beggining of the code
function non_constant_spatial_and_temporal_axis
% pdebc function — Neumann BCs
function [pl, ql, pr, qr] = pdebc(~, ~, ~, ~, ~)
pl = [0; 0];
ql = [1; 1];
pr = [0; 0];
qr = [1;1];
end
% pdeic function
function u0 = pdeic(~)
u0 = [10;5];
end
% pdefun function
function [c, f, s] = pdefun(x, ~, u, dudx)
D1 = 0.024;
D2 = 0.0170;
c = [1; 1];
f = [D1; D2].*dudx;
t1=[1,0,3,4,5,3,2,3,2,3,3,2,3,4,5,6,7,5,4,3,3,2,2,1,3,2,4,5]; % This data is the observations which represent the temporal grid
x_interpolate = linspace(0, 10, length(t1)); % Interpolation of the data so that it can match with the spatial grid
t1_interpolated = interp1(x_interpolate,t1,x,’linear’);
alpha1 = 0.5*(1-sin(2*t1_interpolated)); % The parameters alpha1 and alpha2 depends on the observations in t1
% I want to define alpha1 in such a way that it is a function of bth
% time and space x such that alpha1(t,x)=
% 0.5*(1-sin(2*t1_interpolated))*(1-sin(2*x)) so that I can visualize
% the oscillations on both the time and the space axis at the same
% time.
alpha2 = 0.5*(1-sin(2*t1_interpolated)); % The parameter alpha2 depends on the observations in t1
% alpha2(t,x)=0.5*(1-sin(2*t1_interpolated))*(1-sin(2*x));
s = [alpha1.*u(2).*(u(2).^2 -1); -alpha2.* u(1).*(u(2)-1)];
end
% Main script for running the code
clear all; close all; clc;
m = 0;
t = linspace(0, 5, 50); % time variable
x = linspace(0, 10,50); % space varable
sol = pdepe(m, @pdefun, @pdeic, @pdebc, x, t);
% Extract the solutions
u1 = sol(:, :, 1);
u2 = sol(:, :, 2);
% Plots
figure(1)
surf(x, t, u1)
title(‘u_1(x,t)’)
xlabel(‘Time t’)
ylabel(‘Postion x’)
figure(2)
surf(x, t, u2)
title(‘u_2(x,t)’)
xlabel(‘Time t’)
ylabel(‘Position x’)
end
%end of code
The code is running well but its not giving me oscillations on the spatial axis, like what I am getting on the temporal axis. I wish to be able to observe the spatial variation using a sinusoidal function like the sin function and I also view the oscillations on the spatial and temporal axis. Note that the oscillations on the temporal axis are due to the data while the ones on the spatial axis are due to the use of the sinusoidal function. May you kindly assist me resolve this. I have tried substituting alpha1 with alpha1=0.5*(1-sin(2*t1_interpolated))*(1-sin(2*x)); but then I observe that the term (1-sin(2*x)) reduces the value of alpha1 and the effect is only felt on the temporal axis and not in the spatial axis. What can I do to have the effect felt on the spatial axis as well? non-homogeneous spatial axis MATLAB Answers — New Questions
Can I simulate more than one stl geometry/ an assmebly with the ‘createpde’ function?
Hello, so I want to run a thermal (transient) thermal simulation on a CAD model.
I have imported the CAD model, which consists of distinct bodies that are in both thermal contact and physical contact (like a cuboid, inside another cubiod). I want to use the createpde fucntion to carryout the simulation.
This is an example of my code:
xxChamber = createpde(‘thermal’, ‘transient’);
importGeometry(xxChamber, ‘Outermost component v.stl’)
pdegplot(xxChamber, "FaceLabels","on")
Now this works quite alright, but once I begin to add the second chamber, by typing in
importGeometry (hydrolysisChamber, "middle v2.stl")
The code gives an error saying ‘ Assemblies of more than one geometric model not supported.
What can I do to solve this problem?Hello, so I want to run a thermal (transient) thermal simulation on a CAD model.
I have imported the CAD model, which consists of distinct bodies that are in both thermal contact and physical contact (like a cuboid, inside another cubiod). I want to use the createpde fucntion to carryout the simulation.
This is an example of my code:
xxChamber = createpde(‘thermal’, ‘transient’);
importGeometry(xxChamber, ‘Outermost component v.stl’)
pdegplot(xxChamber, "FaceLabels","on")
Now this works quite alright, but once I begin to add the second chamber, by typing in
importGeometry (hydrolysisChamber, "middle v2.stl")
The code gives an error saying ‘ Assemblies of more than one geometric model not supported.
What can I do to solve this problem? Hello, so I want to run a thermal (transient) thermal simulation on a CAD model.
I have imported the CAD model, which consists of distinct bodies that are in both thermal contact and physical contact (like a cuboid, inside another cubiod). I want to use the createpde fucntion to carryout the simulation.
This is an example of my code:
xxChamber = createpde(‘thermal’, ‘transient’);
importGeometry(xxChamber, ‘Outermost component v.stl’)
pdegplot(xxChamber, "FaceLabels","on")
Now this works quite alright, but once I begin to add the second chamber, by typing in
importGeometry (hydrolysisChamber, "middle v2.stl")
The code gives an error saying ‘ Assemblies of more than one geometric model not supported.
What can I do to solve this problem? pde, simulation, model MATLAB Answers — New Questions
Excel pivot chart’s secondary axis disappears after parameter in chart is filtered at slicer
Hi,
A pivot chart on Sales (primary y axis) and Rate (secondary y axis) is plotted against time (X axis). Area parameter is part of the underlying dataset, but not plotted in same chart.
When Area or Rate is filtered at respective slicer, the secondary y axis disappears i.e. pivot chart resets to having only primary y axis
How may I keep the secondary y axis after filtering?
Thank you.
Hi, A pivot chart on Sales (primary y axis) and Rate (secondary y axis) is plotted against time (X axis). Area parameter is part of the underlying dataset, but not plotted in same chart. When Area or Rate is filtered at respective slicer, the secondary y axis disappears i.e. pivot chart resets to having only primary y axis How may I keep the secondary y axis after filtering? Thank you. Read More
More than 10 bars in timeline bar
I am using Project to manage a program of works with circa 80 individual projects. The timeline feature is an effective way to summarise project status at a high level but I cannot work out how to add more than 10 bard to the timeline. Is there a way around the 10 bar limit, or alternatively, is there a report function that provides a similar view to the timeline?
Any help would be greatly appreciated.
I am using Project to manage a program of works with circa 80 individual projects. The timeline feature is an effective way to summarise project status at a high level but I cannot work out how to add more than 10 bard to the timeline. Is there a way around the 10 bar limit, or alternatively, is there a report function that provides a similar view to the timeline?Any help would be greatly appreciated. Read More
Selecting a range of cells in MS Excel
How do I select (in order to delete or modify) a range of cells from a currently selected cell to:
– the end of a range with data in a row or column
or
– to the end of a row (left or right) or column (up or down)
Thanks
How do I select (in order to delete or modify) a range of cells from a currently selected cell to:- the end of a range with data in a row or columnor- to the end of a row (left or right) or column (up or down)Thanks Read More
IndoorManager tilesetId configuration
I’ve asked this question direct to a team member but thought I’d ask here too as it might benefit the community.
I am using azure-maps-indoor v0.2.3 and azure-maps-control v3.2.1 to attempt to render a tileset using manifest 2.0. The IndoorManagerOptions has a tilesetId and this is how I have traditionally applied a tileset to the IndoorManager (v0.1.x). The Azure map samples I am seeing now do not use this at all, and instead use mapConfiguration, domain and styleAPIVersion properties of the Map object instead.
Does this mean my original setup will not work and therefore requires me to add a pipeline step to create a MapConfiguration for my tileset?
Additional Info:
I should note that my pipeline is created using a global maps account and I still ingest data using the deprecated (but still available) data upload api, and then the conversion, dataset, tileset and routeset make use of Creator openapi spec 2023-03-01-preview (as this is a manifest 2.0 package).
I am still using a global maps account as my infrastructure uses Crossplane over Terraform providers and the azurerm provider does not support setting the required maps account properties for a data registry appropriate setup. Of course there is an issue with Terraform for this and living in hope that it is resolved prior to the maps account data plane data api deletion deadline.
I’ve asked this question direct to a team member but thought I’d ask here too as it might benefit the community. I am using azure-maps-indoor v0.2.3 and azure-maps-control v3.2.1 to attempt to render a tileset using manifest 2.0. The IndoorManagerOptions has a tilesetId and this is how I have traditionally applied a tileset to the IndoorManager (v0.1.x). The Azure map samples I am seeing now do not use this at all, and instead use mapConfiguration, domain and styleAPIVersion properties of the Map object instead. Does this mean my original setup will not work and therefore requires me to add a pipeline step to create a MapConfiguration for my tileset? Additional Info:I should note that my pipeline is created using a global maps account and I still ingest data using the deprecated (but still available) data upload api, and then the conversion, dataset, tileset and routeset make use of Creator openapi spec 2023-03-01-preview (as this is a manifest 2.0 package). I am still using a global maps account as my infrastructure uses Crossplane over Terraform providers and the azurerm provider does not support setting the required maps account properties for a data registry appropriate setup. Of course there is an issue with Terraform for this and living in hope that it is resolved prior to the maps account data plane data api deletion deadline. Read More
Transfer function derviation for a system
I plan to heat 10L of Palm Oil to 60C from room temperature and maintain that temperature for the transesterification of biodiesel. To maintain the temperature I am developing a PID controller with a 1000W immersion heater but I need to find a way to obtain the PID constants. So far I have developed this equation to model:
Where P is input power,
How to
derive the system transfer function from matlab
can I generate similar modelled equations as above for any adjustments to the system for example if I add a stirrer?I plan to heat 10L of Palm Oil to 60C from room temperature and maintain that temperature for the transesterification of biodiesel. To maintain the temperature I am developing a PID controller with a 1000W immersion heater but I need to find a way to obtain the PID constants. So far I have developed this equation to model:
Where P is input power,
How to
derive the system transfer function from matlab
can I generate similar modelled equations as above for any adjustments to the system for example if I add a stirrer? I plan to heat 10L of Palm Oil to 60C from room temperature and maintain that temperature for the transesterification of biodiesel. To maintain the temperature I am developing a PID controller with a 1000W immersion heater but I need to find a way to obtain the PID constants. So far I have developed this equation to model:
Where P is input power,
How to
derive the system transfer function from matlab
can I generate similar modelled equations as above for any adjustments to the system for example if I add a stirrer? transfer, thermo MATLAB Answers — New Questions
add / interpolate arrays of different length
Hello community,
i have two array’s tsol and ysol. Each array has the length of 9;
I have also an error estimate array errorEst. The error estimate has only 4 elements.
The four elements have a "time" length of 0.25.
The errorEst
tsol = linspace(0,1,9);
ysol = sin(tsol*pi);
errorEst = rand(1,4); %each bar has a length of 0.25;
bar(errorEst);
plot([0 0.25 0.5 0.75; 0.25 0.5 0.75 1],[errorEst; errorEst]/0.25,’k’)
title(‘gradient of errorEst ‘)
xlabel(‘t’)
ylabel(‘d errorEst / dt’)
% who could i integrate this gradient of errorEst w.r.t the time tSol and
% add to ysol?
% the first part should be a continous (function/plot)
% is there an elegant solution, which is parallelizable?
the solution should be plottet:
%yp = ysol + errorEstLin;
%ym= ysol -errorEstLin;Hello community,
i have two array’s tsol and ysol. Each array has the length of 9;
I have also an error estimate array errorEst. The error estimate has only 4 elements.
The four elements have a "time" length of 0.25.
The errorEst
tsol = linspace(0,1,9);
ysol = sin(tsol*pi);
errorEst = rand(1,4); %each bar has a length of 0.25;
bar(errorEst);
plot([0 0.25 0.5 0.75; 0.25 0.5 0.75 1],[errorEst; errorEst]/0.25,’k’)
title(‘gradient of errorEst ‘)
xlabel(‘t’)
ylabel(‘d errorEst / dt’)
% who could i integrate this gradient of errorEst w.r.t the time tSol and
% add to ysol?
% the first part should be a continous (function/plot)
% is there an elegant solution, which is parallelizable?
the solution should be plottet:
%yp = ysol + errorEstLin;
%ym= ysol -errorEstLin; Hello community,
i have two array’s tsol and ysol. Each array has the length of 9;
I have also an error estimate array errorEst. The error estimate has only 4 elements.
The four elements have a "time" length of 0.25.
The errorEst
tsol = linspace(0,1,9);
ysol = sin(tsol*pi);
errorEst = rand(1,4); %each bar has a length of 0.25;
bar(errorEst);
plot([0 0.25 0.5 0.75; 0.25 0.5 0.75 1],[errorEst; errorEst]/0.25,’k’)
title(‘gradient of errorEst ‘)
xlabel(‘t’)
ylabel(‘d errorEst / dt’)
% who could i integrate this gradient of errorEst w.r.t the time tSol and
% add to ysol?
% the first part should be a continous (function/plot)
% is there an elegant solution, which is parallelizable?
the solution should be plottet:
%yp = ysol + errorEstLin;
%ym= ysol -errorEstLin; interpolate MATLAB Answers — New Questions
How do I resolve the error “java.lang.UnsatisfiedLinkError: nativemvm.dll already loaded in another classloader” when running a Java Engine program?
I have a Java source code that calls MATLAB via MATLAB Engine API. I compiled a .WAR file from the Java source code on Windows 7. Then I deployed the .WAR file to Windows Server 2016 using JBoss EAP, and got the following error:
ERROR: java.lang.UnsatisfiedLinkError: Native Library C:Program FilesMATLABR2019abinwin64nativemvm.dll already loaded in another classloader
I have MATLAB R2019a installed on both Windows 7 and Windows Sever 2016. Before deploying the .WAR file, I added "C:Program FilesMATLABR2019abinwin64" to the PATH variable on Windows Server 2016 and added “C:Program FilesMATLABR2019aexternenginesjavajarengine.jar” to the “classpath” in JBoss.
How do I resolve this "nativemvm.dll" error?I have a Java source code that calls MATLAB via MATLAB Engine API. I compiled a .WAR file from the Java source code on Windows 7. Then I deployed the .WAR file to Windows Server 2016 using JBoss EAP, and got the following error:
ERROR: java.lang.UnsatisfiedLinkError: Native Library C:Program FilesMATLABR2019abinwin64nativemvm.dll already loaded in another classloader
I have MATLAB R2019a installed on both Windows 7 and Windows Sever 2016. Before deploying the .WAR file, I added "C:Program FilesMATLABR2019abinwin64" to the PATH variable on Windows Server 2016 and added “C:Program FilesMATLABR2019aexternenginesjavajarengine.jar” to the “classpath” in JBoss.
How do I resolve this "nativemvm.dll" error? I have a Java source code that calls MATLAB via MATLAB Engine API. I compiled a .WAR file from the Java source code on Windows 7. Then I deployed the .WAR file to Windows Server 2016 using JBoss EAP, and got the following error:
ERROR: java.lang.UnsatisfiedLinkError: Native Library C:Program FilesMATLABR2019abinwin64nativemvm.dll already loaded in another classloader
I have MATLAB R2019a installed on both Windows 7 and Windows Sever 2016. Before deploying the .WAR file, I added "C:Program FilesMATLABR2019abinwin64" to the PATH variable on Windows Server 2016 and added “C:Program FilesMATLABR2019aexternenginesjavajarengine.jar” to the “classpath” in JBoss.
How do I resolve this "nativemvm.dll" error? MATLAB Answers — New Questions
How to choose relative error bound when using reducespec on sparse LTI model
Hello everyone,
I have a sparse LTI model, named "sys", that I want to reduce with reducespec and balanced truncation.
The final model should have a maximum relative error of e.g. 30%.
I have tried the following:
R = reducespec(sys, "balanced");
R.Options.Goal = "relative";
sysR = getrom(R, MaxError=0.3, Method=’truncate’);
However, in contrast to the full model, the MOR specification object of the sparse model does not have the "Goal" field under "R.Options", which appears to mean that it cannot be switched to relative error bound.
Unrecognized property ‘Goal’ for class ‘mor.SparseBalancedTruncationOptions’.
Is there another way to switch to the relative error bound, or is there a fundamental underlying reason why this is not applicable to sparse models?
Thank you in advance!Hello everyone,
I have a sparse LTI model, named "sys", that I want to reduce with reducespec and balanced truncation.
The final model should have a maximum relative error of e.g. 30%.
I have tried the following:
R = reducespec(sys, "balanced");
R.Options.Goal = "relative";
sysR = getrom(R, MaxError=0.3, Method=’truncate’);
However, in contrast to the full model, the MOR specification object of the sparse model does not have the "Goal" field under "R.Options", which appears to mean that it cannot be switched to relative error bound.
Unrecognized property ‘Goal’ for class ‘mor.SparseBalancedTruncationOptions’.
Is there another way to switch to the relative error bound, or is there a fundamental underlying reason why this is not applicable to sparse models?
Thank you in advance! Hello everyone,
I have a sparse LTI model, named "sys", that I want to reduce with reducespec and balanced truncation.
The final model should have a maximum relative error of e.g. 30%.
I have tried the following:
R = reducespec(sys, "balanced");
R.Options.Goal = "relative";
sysR = getrom(R, MaxError=0.3, Method=’truncate’);
However, in contrast to the full model, the MOR specification object of the sparse model does not have the "Goal" field under "R.Options", which appears to mean that it cannot be switched to relative error bound.
Unrecognized property ‘Goal’ for class ‘mor.SparseBalancedTruncationOptions’.
Is there another way to switch to the relative error bound, or is there a fundamental underlying reason why this is not applicable to sparse models?
Thank you in advance! reducespec, sparse lti, relative error bound MATLAB Answers — New Questions
Troubles With Image Resizing
Hello! I have a slice of a .nii file (essentially a 3D array) I’d like to print out. However, the dimensions of a voxel (a 3D pixel, so basically a cube) aren’t exactly 1mm x 1mm x 1mm. They’re around 1.2mm x 1.1mm x 1.1mm.
I took a slice of the 3D array, so it’s just a 2D image. So, the dimensions of each pixel are ~1.2mm x 1.1mm. I’d like to resize the image such that one pixel is equal to one element of the array is equal to one mm. In theory, it doesn’t seem too difficult. But I just can’t figure this out.
Here’s my code so far:
clear
clc
close all
% Load NIfTI image
info = niftiinfo(‘index_image.nii’);
brain = niftiread(info);
% Extract a slice from the NIfTI image
slice = brain(:, :, 128);
% Create figure
hFig = figure;
% Display the slice with pixel-to-mm scaling
imagesc(slice);
axis off;
axis equal;
colormap(gray)
% Set figure size so that 1 pixel corresponds to 1mm on the printed figure
set(hFig, ‘Units’, ‘centimeters’, ‘Position’, [0 0 24 17.6]);
movegui(hFig, ‘center’);
% Set properties to control the output size
set(hFig, ‘PaperUnits’, ‘centimeters’);
set(hFig, ‘PaperPosition’, [0 0 24 17.6]);
set(hFig, ‘PaperOrientation’, ‘landscape’);
% Export to PDF and open file
print(hFig, ‘-dpdf’, ‘-r0’, ‘out.pdf’);
open(‘out.pdf’);
The reason why use 24 and 17.6 is because my .nii file is 176 x 240 x 256 elements. I’d honestly like the code to work regardless of the size of the array, but even hard coding it into MATLAB isn’t working. The code is compiling just fine, but the figure in the generated PDF doesn’t have the dimensions I’d like it to have.
Would anyone be able to provide some insights? Thank you!Hello! I have a slice of a .nii file (essentially a 3D array) I’d like to print out. However, the dimensions of a voxel (a 3D pixel, so basically a cube) aren’t exactly 1mm x 1mm x 1mm. They’re around 1.2mm x 1.1mm x 1.1mm.
I took a slice of the 3D array, so it’s just a 2D image. So, the dimensions of each pixel are ~1.2mm x 1.1mm. I’d like to resize the image such that one pixel is equal to one element of the array is equal to one mm. In theory, it doesn’t seem too difficult. But I just can’t figure this out.
Here’s my code so far:
clear
clc
close all
% Load NIfTI image
info = niftiinfo(‘index_image.nii’);
brain = niftiread(info);
% Extract a slice from the NIfTI image
slice = brain(:, :, 128);
% Create figure
hFig = figure;
% Display the slice with pixel-to-mm scaling
imagesc(slice);
axis off;
axis equal;
colormap(gray)
% Set figure size so that 1 pixel corresponds to 1mm on the printed figure
set(hFig, ‘Units’, ‘centimeters’, ‘Position’, [0 0 24 17.6]);
movegui(hFig, ‘center’);
% Set properties to control the output size
set(hFig, ‘PaperUnits’, ‘centimeters’);
set(hFig, ‘PaperPosition’, [0 0 24 17.6]);
set(hFig, ‘PaperOrientation’, ‘landscape’);
% Export to PDF and open file
print(hFig, ‘-dpdf’, ‘-r0’, ‘out.pdf’);
open(‘out.pdf’);
The reason why use 24 and 17.6 is because my .nii file is 176 x 240 x 256 elements. I’d honestly like the code to work regardless of the size of the array, but even hard coding it into MATLAB isn’t working. The code is compiling just fine, but the figure in the generated PDF doesn’t have the dimensions I’d like it to have.
Would anyone be able to provide some insights? Thank you! Hello! I have a slice of a .nii file (essentially a 3D array) I’d like to print out. However, the dimensions of a voxel (a 3D pixel, so basically a cube) aren’t exactly 1mm x 1mm x 1mm. They’re around 1.2mm x 1.1mm x 1.1mm.
I took a slice of the 3D array, so it’s just a 2D image. So, the dimensions of each pixel are ~1.2mm x 1.1mm. I’d like to resize the image such that one pixel is equal to one element of the array is equal to one mm. In theory, it doesn’t seem too difficult. But I just can’t figure this out.
Here’s my code so far:
clear
clc
close all
% Load NIfTI image
info = niftiinfo(‘index_image.nii’);
brain = niftiread(info);
% Extract a slice from the NIfTI image
slice = brain(:, :, 128);
% Create figure
hFig = figure;
% Display the slice with pixel-to-mm scaling
imagesc(slice);
axis off;
axis equal;
colormap(gray)
% Set figure size so that 1 pixel corresponds to 1mm on the printed figure
set(hFig, ‘Units’, ‘centimeters’, ‘Position’, [0 0 24 17.6]);
movegui(hFig, ‘center’);
% Set properties to control the output size
set(hFig, ‘PaperUnits’, ‘centimeters’);
set(hFig, ‘PaperPosition’, [0 0 24 17.6]);
set(hFig, ‘PaperOrientation’, ‘landscape’);
% Export to PDF and open file
print(hFig, ‘-dpdf’, ‘-r0’, ‘out.pdf’);
open(‘out.pdf’);
The reason why use 24 and 17.6 is because my .nii file is 176 x 240 x 256 elements. I’d honestly like the code to work regardless of the size of the array, but even hard coding it into MATLAB isn’t working. The code is compiling just fine, but the figure in the generated PDF doesn’t have the dimensions I’d like it to have.
Would anyone be able to provide some insights? Thank you! image processing MATLAB Answers — New Questions
Bester B Y B I T-Empfehlungscode: 62545 (B Y B I T-Anmeldebonus im Jahr 2024)
Sind Sie auf der Suche nach dem aktuellsten B Y B I T-Empfehlungscode für 2024? Wir geben Ihnen die Antwort. Mit dem B Y B I T-Empfehlungscode „62545“ schalten Sie exklusive Angebote von B Y B I T Exchange frei: einen Bonus von bis zu 30.000 USDT und 10 % Rabatt auf Ihre Handelsgebühren für den ersten Monat. Wenn Sie sich bei B Y B I T mit dem Empfehlungscode „62545“ registrieren, erhalten Sie außerdem Anspruch auf eine Aktion der Börse im Wert von 25 USDT.
Was ist der B Y B I T-Empfehlungscode?
Der B Y B I T-Empfehlungscode dient als Einladung zum Beitritt zur B Y B I T-Plattform für den Online-Kryptowährungshandel und bietet Benutzern kostenlose Krypto-Anmeldeboni. Geben Sie bei der Registrierung einfach den Empfehlungscode „62545“ ein, um Vergünstigungen wie einen Willkommensbonus von bis zu 30.000 USDT und einen Rabatt von 10 % auf Ihre Handelsgebühren zu erhalten.
B Y B I T Anmelde-Empfehlungscode
Schritt 1: Registrieren Sie sich mit dem Empfehlungscode
Besuchen Sie zunächst die B Y B I T-Website oder die mobile App, klicken Sie auf „Registrieren“ und verwenden Sie diesen [B Y B I T-Empfehlungslink]. Geben Sie Ihre E-Mail-Adresse, Ihr Passwort und den Empfehlungscode „62545“ an. Alternativ können Sie statt einer E-Mail auch Ihre Handynummer verwenden. Stimmen Sie den Bedingungen und der Datenschutzrichtlinie zu und klicken Sie dann auf „Anmelden“. Bestätigen Sie Ihre E-Mail-Adresse oder Handynummer, indem Sie den von B Y B I T gesendeten Code eingeben.
Schritt 2: Machen Sie Ihre erste Krypto-Einzahlung
Gehen Sie als Nächstes oben auf „Vermögenswerte“, wählen Sie die Kryptowährung für die Einzahlung aus und klicken Sie auf „Einzahlen“. Sie sehen einen QR-Code und eine Adresse für die Überweisung von Geldern aus Ihrem Wallet.
Schritt 3: Lösen Sie Boni über die Seite „Rewards Hub“ ein
Sobald Sie Geld eingezahlt haben, klicken Sie oben auf „Rewards Hub“. Sie sehen verschiedene Aufgaben zum Verdienen von Belohnungen, z. B. die Durchführung der ersten Einzahlung, die Verwendung von Take-Profit/Stop-Loss und den Handel mit USDT-Kontrakten. Zu den Belohnungen gehören Boni und Coupons, die dabei helfen können, Gebühren und Verluste auszugleichen. Klicken Sie für jede abgeschlossene Aufgabe auf „Anfordern“, um Ihre Belohnungen zu erhalten.
Wie registriere ich ein Konto mit dem Empfehlungscode B Y B I T?
Besuchen Sie die B Y B I T-Registrierungsseite.
Stellen Sie sicher, dass Sie während des Anmeldevorgangs den Empfehlungscode „62545“ korrekt in das bereitgestellte Formular eingeben. Eine Orientierung finden Sie im beigefügten Bild. „62545“ ist ein gültiger Aktionscode. Wenn Sie unsere Empfehlungslinks verwenden, sollte der Code automatisch ausgefüllt werden.
Schließen Sie den Registrierungsprozess ab.
Machen Sie eine Einzahlung und beginnen Sie mit dem Handel.
Genießen Sie Ihre Boni im Rewards Hub: Benutzer, die die angegebenen Anforderungen innerhalb von 14 Tagen erfüllen, erhalten ihren Bonus umgehend über den Rewards Hub von B Y B I T.
Welche Vorteile bietet mir der B Y B I T-Empfehlungscode „62545“?
Wenn Sie sich kostenlos mit dem B Y B I T-Empfehlungscode „62545“ anmelden, haben Sie zunächst Anspruch auf einen Bonus von 25 USDT, mit der Möglichkeit, basierend auf Ihrem eingezahlten Betrag und Ihrer Handelsaktivität bis zu 30.000 USDT zu verdienen.
Wie beanspruche ich meinen B Y B I T-Willkommensbonus?
Um den von der B Y B I T-Börse angebotenen Bonus zu nutzen, befolgen Sie diese drei einfachen Schritte:
Schritt 1: Beginnen Sie mit der Registrierung für ein B Y B I T-Konto.
Schritt 2: Führen Sie eine Einzahlung durch.
Schritt 3: Laden Sie Ihre Freunde ein und verdienen Sie bis zu 420 USDT für jede von Ihnen gesendete Einladung.
Was ist der kostenlose Promo-Code für B Y B I T?
Schalten Sie mit dem exklusiven Aktionscode 62545 einen kostenlosen Anmeldebonus für B Y B I T frei. Melden Sie sich jetzt bei B Y B I T an und sichern Sie sich Ihre Einladung!
Wie verwende ich meinen 5-Dollar-Gutschein für B Y B I T?
Befolgen Sie diese Schritt-für-Schritt-Anleitung, um B Y B I T-Gutscheine zu nutzen:
1. Melden Sie sich bei B Y B I T an.
2. Überprüfen Sie Ihre Identität.
3. Rufen Sie die Seite „Gutscheine“ auf.
4. Lösen Sie Ihren B Y B I T-Gutschein ein.
5. Nutzen Sie Ihren erhaltenen Bonus.
6. Schließen Sie den Vorgang ab.
7. Verbessern Sie Ihre Fähigkeiten im Handel mit Kryptowährungen mit unserer Legends’ Trading Masterclass.
Wie bekomme ich kostenloses USDT in B Y B I T?
Erhöhen Sie Ihre USDT-Prämien, indem Sie Freunde und Familie einladen, sich B Y B I T anzuschließen. Bei der Registrierung für ein B Y B I T-Konto erhalten Sie einen exklusiven Empfehlungscode. Für jeden Freund, den Sie einladen, erhalten Sie beide einen kostenlosen Anmeldebonus von 25 USDT!
Sind Sie auf der Suche nach dem aktuellsten B Y B I T-Empfehlungscode für 2024? Wir geben Ihnen die Antwort. Mit dem B Y B I T-Empfehlungscode „62545“ schalten Sie exklusive Angebote von B Y B I T Exchange frei: einen Bonus von bis zu 30.000 USDT und 10 % Rabatt auf Ihre Handelsgebühren für den ersten Monat. Wenn Sie sich bei B Y B I T mit dem Empfehlungscode „62545“ registrieren, erhalten Sie außerdem Anspruch auf eine Aktion der Börse im Wert von 25 USDT. Was ist der B Y B I T-Empfehlungscode?Der B Y B I T-Empfehlungscode dient als Einladung zum Beitritt zur B Y B I T-Plattform für den Online-Kryptowährungshandel und bietet Benutzern kostenlose Krypto-Anmeldeboni. Geben Sie bei der Registrierung einfach den Empfehlungscode „62545“ ein, um Vergünstigungen wie einen Willkommensbonus von bis zu 30.000 USDT und einen Rabatt von 10 % auf Ihre Handelsgebühren zu erhalten. B Y B I T Anmelde-EmpfehlungscodeSchritt 1: Registrieren Sie sich mit dem EmpfehlungscodeBesuchen Sie zunächst die B Y B I T-Website oder die mobile App, klicken Sie auf „Registrieren“ und verwenden Sie diesen [B Y B I T-Empfehlungslink]. Geben Sie Ihre E-Mail-Adresse, Ihr Passwort und den Empfehlungscode „62545“ an. Alternativ können Sie statt einer E-Mail auch Ihre Handynummer verwenden. Stimmen Sie den Bedingungen und der Datenschutzrichtlinie zu und klicken Sie dann auf „Anmelden“. Bestätigen Sie Ihre E-Mail-Adresse oder Handynummer, indem Sie den von B Y B I T gesendeten Code eingeben. Schritt 2: Machen Sie Ihre erste Krypto-EinzahlungGehen Sie als Nächstes oben auf „Vermögenswerte“, wählen Sie die Kryptowährung für die Einzahlung aus und klicken Sie auf „Einzahlen“. Sie sehen einen QR-Code und eine Adresse für die Überweisung von Geldern aus Ihrem Wallet.Schritt 3: Lösen Sie Boni über die Seite „Rewards Hub“ einSobald Sie Geld eingezahlt haben, klicken Sie oben auf „Rewards Hub“. Sie sehen verschiedene Aufgaben zum Verdienen von Belohnungen, z. B. die Durchführung der ersten Einzahlung, die Verwendung von Take-Profit/Stop-Loss und den Handel mit USDT-Kontrakten. Zu den Belohnungen gehören Boni und Coupons, die dabei helfen können, Gebühren und Verluste auszugleichen. Klicken Sie für jede abgeschlossene Aufgabe auf „Anfordern“, um Ihre Belohnungen zu erhalten.Wie registriere ich ein Konto mit dem Empfehlungscode B Y B I T?Besuchen Sie die B Y B I T-Registrierungsseite.Stellen Sie sicher, dass Sie während des Anmeldevorgangs den Empfehlungscode „62545“ korrekt in das bereitgestellte Formular eingeben. Eine Orientierung finden Sie im beigefügten Bild. „62545“ ist ein gültiger Aktionscode. Wenn Sie unsere Empfehlungslinks verwenden, sollte der Code automatisch ausgefüllt werden.Schließen Sie den Registrierungsprozess ab.Machen Sie eine Einzahlung und beginnen Sie mit dem Handel.Genießen Sie Ihre Boni im Rewards Hub: Benutzer, die die angegebenen Anforderungen innerhalb von 14 Tagen erfüllen, erhalten ihren Bonus umgehend über den Rewards Hub von B Y B I T.Welche Vorteile bietet mir der B Y B I T-Empfehlungscode „62545“?Wenn Sie sich kostenlos mit dem B Y B I T-Empfehlungscode „62545“ anmelden, haben Sie zunächst Anspruch auf einen Bonus von 25 USDT, mit der Möglichkeit, basierend auf Ihrem eingezahlten Betrag und Ihrer Handelsaktivität bis zu 30.000 USDT zu verdienen. Wie beanspruche ich meinen B Y B I T-Willkommensbonus? Um den von der B Y B I T-Börse angebotenen Bonus zu nutzen, befolgen Sie diese drei einfachen Schritte:Schritt 1: Beginnen Sie mit der Registrierung für ein B Y B I T-Konto.Schritt 2: Führen Sie eine Einzahlung durch.Schritt 3: Laden Sie Ihre Freunde ein und verdienen Sie bis zu 420 USDT für jede von Ihnen gesendete Einladung. Was ist der kostenlose Promo-Code für B Y B I T? Schalten Sie mit dem exklusiven Aktionscode 62545 einen kostenlosen Anmeldebonus für B Y B I T frei. Melden Sie sich jetzt bei B Y B I T an und sichern Sie sich Ihre Einladung! Wie verwende ich meinen 5-Dollar-Gutschein für B Y B I T? Befolgen Sie diese Schritt-für-Schritt-Anleitung, um B Y B I T-Gutscheine zu nutzen:1. Melden Sie sich bei B Y B I T an.2. Überprüfen Sie Ihre Identität.3. Rufen Sie die Seite „Gutscheine“ auf.4. Lösen Sie Ihren B Y B I T-Gutschein ein.5. Nutzen Sie Ihren erhaltenen Bonus.6. Schließen Sie den Vorgang ab.7. Verbessern Sie Ihre Fähigkeiten im Handel mit Kryptowährungen mit unserer Legends’ Trading Masterclass. Wie bekomme ich kostenloses USDT in B Y B I T? Erhöhen Sie Ihre USDT-Prämien, indem Sie Freunde und Familie einladen, sich B Y B I T anzuschließen. Bei der Registrierung für ein B Y B I T-Konto erhalten Sie einen exklusiven Empfehlungscode. Für jeden Freund, den Sie einladen, erhalten Sie beide einen kostenlosen Anmeldebonus von 25 USDT! Read More
If identical values in one column return identical or different values in another column True/False
Hi all,
I have duplicate cell values in column 1 (PLU). Can someone please provide me with a formula to determine when duplicate values in column 1 (PLU) return non-identical cell values in another and return a True/False?
I manually added the two green tables to show what I’m after.
Thanks !!! I’ve uploaded the book here if you need
Hi all, I have duplicate cell values in column 1 (PLU). Can someone please provide me with a formula to determine when duplicate values in column 1 (PLU) return non-identical cell values in another and return a True/False? I manually added the two green tables to show what I’m after. Thanks !!! I’ve uploaded the book here if you need sample book.xlsx Read More
Using Publisher for a yacht club photo directory
I am the secretary for a small yacht club on Lake Ontario. I want to produce a member photo directory showing each individual member and his/her family members along with their names. Members come and go so each year I (or my successor) can delete photos and insert new ones. I’m hoping that there is some way to link rows the same way that you can link columns. There will ultimately be many hundreds of photos. Can this be accomplished?
I am the secretary for a small yacht club on Lake Ontario. I want to produce a member photo directory showing each individual member and his/her family members along with their names. Members come and go so each year I (or my successor) can delete photos and insert new ones. I’m hoping that there is some way to link rows the same way that you can link columns. There will ultimately be many hundreds of photos. Can this be accomplished? Read More
FAQ: Private offers with plans from different solutions + creating bundled offers
Q:
1) I understand it is possible to create a private OFFER in such a way that it includes PLANS from several different solutions (e.g., a publisher might want to include a plan from their price-management solution, a plan from their inventory-management solution, etc. in the same private OFFER). Are there boundaries/constraints/limitations on that ability?
2) Alternative approach is to create a “bundle” offer (SaaS) with no price, and then negotiate which capabilities will be included in the bundle – noting that the combination and pricing may be different for every deal. So customer A is presented a private plan that says “you’re getting the inventory-management and price-management stuff for $xxxxx” and customer B is presented a private plan on that same “bundle” offer that says “you’re buying the back-office management and the warehouse-management stuff for $yyyy” Does that approach violate Marketplace policy?
A: When a publisher starts to create a private offer they are presented with choices:
Direct to customer
to CSP
MPO to specific channel partner and end customer.
Then they have another tree of choices – you can read about the use case for each in our documentation ISV to customer private offers – Marketplace publisher | Microsoft Learn
We recommend #1 option above. ISVs should list individual transactable products in Marketplace and then use private offers to bundle multiple products/plans as desired by the customer. In this case “bundling” means that the “ISV can up add up to 10 offers/plans” to the private offer.
Q:
1) I understand it is possible to create a private OFFER in such a way that it includes PLANS from several different solutions (e.g., a publisher might want to include a plan from their price-management solution, a plan from their inventory-management solution, etc. in the same private OFFER). Are there boundaries/constraints/limitations on that ability?
2) Alternative approach is to create a “bundle” offer (SaaS) with no price, and then negotiate which capabilities will be included in the bundle – noting that the combination and pricing may be different for every deal. So customer A is presented a private plan that says “you’re getting the inventory-management and price-management stuff for $xxxxx” and customer B is presented a private plan on that same “bundle” offer that says “you’re buying the back-office management and the warehouse-management stuff for $yyyy” Does that approach violate Marketplace policy?
A: When a publisher starts to create a private offer they are presented with choices:
Direct to customer
to CSP
MPO to specific channel partner and end customer.
Then they have another tree of choices – you can read about the use case for each in our documentation ISV to customer private offers – Marketplace publisher | Microsoft Learn
We recommend #1 option above. ISVs should list individual transactable products in Marketplace and then use private offers to bundle multiple products/plans as desired by the customer. In this case “bundling” means that the “ISV can up add up to 10 offers/plans” to the private offer. Read More
FAQ: API for listing and initiating private offers + reporting on private offers
Q: Is there a Marketplace API that can help programmatically list and initiate private offers, as well as generate reports on consumption/charge of private offers by each?
A: For reports on consumption and charges you should have API provided by billing and cost management – Charges – List – REST API (Azure Consumption) | Microsoft Learn and Marketplaces – List – REST API (Azure Consumption) | Microsoft Learn
Q: Is there a Marketplace API that can help programmatically list and initiate private offers, as well as generate reports on consumption/charge of private offers by each?
A: For reports on consumption and charges you should have API provided by billing and cost management – Charges – List – REST API (Azure Consumption) | Microsoft Learn and Marketplaces – List – REST API (Azure Consumption) | Microsoft Learn
Read More
Storage migration: Combine Azure Storage Mover and Azure Data Box
Migrating storage from on-premises can be challenging. That’s why we are on a mission to make your migrations as simple as possible. We’ve developed robust solutions that enable you to transfer your files and folders to Azure, tailored to meet your specific migration needs.
At times, the optimal approach is to migrate your files and folders via your network from on-premises to Azure. In such instances, we provide Azure Storage Mover, a fully-managed migration service. Learn more
Alternatively, migrating data offline might be more suitable: Azure Data Box allows you to transport terabytes of data to Azure swiftly, affordably, and dependably. You will receive a specialized Data Box storage device to load with your data and send directly to an Azure data center. Learn more
Did you know these two services can be comnined to form an effective file and folder migration solution that you can use to predict and minimize downtime for your workloads?
Offline migration, online catch-up
Utilizing Azure Data Box likely conserved a significant amount of bandwidth. However, any active workload on your source storage likely made changes while your Data Box was in transit to Azure.
Consequently, you’ll also need to bring those changes to your cloud storage, before a workload can be cut-over to it.
Catch-up copies typically need minimal bandwidth since most of the data already resides in Azure, and only the delta needs to be transferred. Azure Storage Mover is an excellent tool for this purpose.
We ensure that Storage Mover jobs can detect the differences between your on-site storage and cloud storage. Storage Mover will then effectively transfer any updates and new files not previously captured by your Data Box transfer.
Maximizing your upload bandwidth is crucial. For instance, if only a file’s metadata (such as permissions) has changed, Storage Mover will upload only the new metadata instead of the entire file content.
Storage Mover’s copy modes, merge and mirror, allow you to tailor your cloud storage updates to your specific needs.
Storage Mover can be also used independently of Data Box.
Of course, you can also use Storage Mover without Data Box. In that case you’d migrate entirely over your network. Using Data Box may bring both time and bandwidth savings but isn’t needed in every migration scenario.
Minimizing and predicting workload downtime
When transitioning on-premises workloads to Azure Storage, you typically aim to:
Reduce the duration your on-prem application is offline during the switch.
Establish a predictable downtime period for users and business operations reliant on the workload.
Azure Storage Mover is designed to assist in achieving both goals.
The idea behind this approach is that you migrate your data from source to target several times.
Whether you opt for Data Box or Storage Mover, the initial transfer will be the most time-consuming, as it requires moving all your data to the cloud.
How long exactly this first copy will take, depends on many factors and is hard to predict. Therefore, it is not advisable to take any workloads that depend on this data offline prior to initiating this bulk copy step. Instead, maintain your workloads active on the source data.
Keeping your workloads active on the source constantly introduces changes and new files to the source. It may even prevent some of your files from being migrated, because they are in use. But that’s OK.
After your bulk migration finishes, you immediately start this catch-up migration job. Now, you only need to transfer the changes that have occurred since the initial bulk migration started. Likely, this catch-up migration job will complete more quickly since there are fewer bytes that need to be transferred across your network.
This speed-up migration job is optional. Initiate this job immediately after the completion of the preceding “catch-up” job.
As the last job concluded more quickly than the initial “bulk-migration” job, there was less time for changes to accumulate. Consequently, this speed-up job is expected to complete even more swiftly.
Multiple speed-up jobs can be executed consecutively. Eventually, you will reach a point where the processing time of a job is no longer decreasing, and reaches it’s minimum for the given namespace. At this stage, almost no data needs to be transferred over the network, and the majority of the time is spent on determining whether a file requires migration. Additional local compute cores and RAM can be beneficial.
Once your speed-up copy job(s) no longer finish any faster than the preceding ones, it’s probable that you’ve reached the minimum that the combination of your namespace (number of files) and the local compute resources allow for.
This implies that executing an additional job will probably complete in a similar timeframe. You have identified a predictable, minimal downtime for your workload(s) that depend on this namespace.
It’s time to take the workloads offline for this predicted period.
Execute your final migration job.
After its completion, connect your workload to the fully migrated data in the cloud.
And just like that, you are up and running again.
It’s important to note the limitations of this method.
An extensive collection of small files with a high change rate might necessitate longer downtime. Moreover, this technique won’t capture files that are in constant use until the final cut-over migration job. If there’s a considerable number of such files or their total size is large, achieving a predictable minimum with this method is hardly feasible.
Consequently, this method is not suitable for migrating active database files, for example. The convergent, n-pass migration strategy is designed for general-purpose namespaces. For databases or files that are always open, it’s best to use specialized migration tools tailored for those specific workloads.
Ready to get started?
Data Box:
Documentation home
Which Data Box device is right for me?
Training: Import data offline with Data Box
Storage Mover
Documentation home
Storage Mover overview
Plan for a storage mover deployment
Microsoft Tech Community – Latest Blogs –Read More
Keep underscore symbol using latex as interpreter
Hello All,
I am trying to have one of the entries for my legend (which I like to have latex interpreter for) be the string to the data set I am analyzing (see image). And thus, I want to keep the underscore symbol as is (instead of making what follows a subscript) but still keep the latex as interpreter. I know that making interpeter ‘none’ it will ignore the subscript, but I want to keep the _ symbol in the legend AND use latex interpreter.
I have not figured out a way to do this (in the attached image, latex doesn’t understand the dataName variable so it prints in a different font from the rest of the legend). I want the fonts to match.
Hopefully this makes senseHello All,
I am trying to have one of the entries for my legend (which I like to have latex interpreter for) be the string to the data set I am analyzing (see image). And thus, I want to keep the underscore symbol as is (instead of making what follows a subscript) but still keep the latex as interpreter. I know that making interpeter ‘none’ it will ignore the subscript, but I want to keep the _ symbol in the legend AND use latex interpreter.
I have not figured out a way to do this (in the attached image, latex doesn’t understand the dataName variable so it prints in a different font from the rest of the legend). I want the fonts to match.
Hopefully this makes sense Hello All,
I am trying to have one of the entries for my legend (which I like to have latex interpreter for) be the string to the data set I am analyzing (see image). And thus, I want to keep the underscore symbol as is (instead of making what follows a subscript) but still keep the latex as interpreter. I know that making interpeter ‘none’ it will ignore the subscript, but I want to keep the _ symbol in the legend AND use latex interpreter.
I have not figured out a way to do this (in the attached image, latex doesn’t understand the dataName variable so it prints in a different font from the rest of the legend). I want the fonts to match.
Hopefully this makes sense legend, latex, interpreter MATLAB Answers — New Questions