Month: August 2024
Azure DevOps Timeline/Roadmap Native Function
Is there a way to create a “timeline” or “roadmap” view in Azure DevOps natively, without installing and paying for an extension?
A simple ask, to see Epics indivdually as rows vertically and Sprints horizontally.
Epics are still limited to only being assigned to 1 sprint?
Is there a way to create a “timeline” or “roadmap” view in Azure DevOps natively, without installing and paying for an extension? A simple ask, to see Epics indivdually as rows vertically and Sprints horizontally. Epics are still limited to only being assigned to 1 sprint? Read More
Where is Location data in Outlook retrieved from?
In new Outlook you can set Location for if you are in Office or working Remote. From where are these options retrieved? We can only see Office and Remote but since we are a multinational company we need to have the different offices in the list. Where can we define the list?
In new Outlook you can set Location for if you are in Office or working Remote. From where are these options retrieved? We can only see Office and Remote but since we are a multinational company we need to have the different offices in the list. Where can we define the list? Read More
Azure SQL Databases – one or multiple servers?
When I create an Azure SQL Database, I have option to create it on a new SQL Server, or on an existing SQL Server. If I create multiple Azure SQL Databases – when would I want to create it on it’s own server versus putting them all on a single server?
When I create an Azure SQL Database, I have option to create it on a new SQL Server, or on an existing SQL Server. If I create multiple Azure SQL Databases – when would I want to create it on it’s own server versus putting them all on a single server? Read More
What needs to be changed in existing product code to code for MSIX, from Scratch?
I see many articles regarding the handling and packaging of existing applications, but I cannot find anything along the lines of “if you want to change your code for MSIX, this is how” (or how to code for MSIX from day 1). How about an example of a product that was coded in VB .Net (or similar language) and was subsequently packaged in a MSI installer. Now show the new version of that same code with the changes to fit MSIX, (registry, whatever else). If the exe is being executed by the installer and it puts up a dialog that the user needs to respond to, how to handle that (in that custom actions are only available at the beginning and end of the MSIX packaging, and not while installing).
Something along the lines of “This must change”, if you want to write code for MSIX packaging.
I see many articles regarding the handling and packaging of existing applications, but I cannot find anything along the lines of “if you want to change your code for MSIX, this is how” (or how to code for MSIX from day 1). How about an example of a product that was coded in VB .Net (or similar language) and was subsequently packaged in a MSI installer. Now show the new version of that same code with the changes to fit MSIX, (registry, whatever else). If the exe is being executed by the installer and it puts up a dialog that the user needs to respond to, how to handle that (in that custom actions are only available at the beginning and end of the MSIX packaging, and not while installing). Something along the lines of “This must change”, if you want to write code for MSIX packaging. Read More
the الدفع بعد النتيجة 00964 784 248 8906 جلب الحبيب العنيد في ساعات أبو خضرfinal
but I am not able to view anything other than the final (key) frame.شيخروحاني Other sources claim that Samsung Motion Photos stored in OneDrive can رقم شيخ في المانياbe viewed in the MS Photos app on Windows. Photos does indeed seem to recognize motion photos, but clicking on the provided “MOTION” button does not play the 3 second video. Instead the screen goes dark for 3 seconds and then redisplays the final (key) frame. Am I doing something wrong? Have OneDrive.com or MS Photos been downgraded to remove this functionality
but I am not able to view anything other than the final (key) frame.شيخروحاني Other sources claim that Samsung Motion Photos stored in OneDrive can رقم شيخ في المانياbe viewed in the MS Photos app on Windows. Photos does indeed seem to recognize motion photos, but clicking on the provided “MOTION” button does not play the 3 second video. Instead the screen goes dark for 3 seconds and then redisplays the final (key) frame. Am I doing something wrong? Have OneDrive.com or MS Photos been downgraded to remove this functionality Read More
Counting employees during each hour of the day
Hello. I am having a hard time figuring out how to use functions to count the number of staff I have working during each hour of the day. I am a beginner, but I enlisted the help of someone who has more experience and they aren’t able to figure it out either.
I have 45 employees in a 24/7 department, so there are night shift staff that start on 1 day and finish on the next – that is throwing a huge wrench into things.
The schedule also has 30 minute lunches built into their day, so there is a 30 minute overlap that I don’t want to include those people into.
I do my schedule in excel per pay period as shown below. I am willing to adapt the way I currently do the schedule if needed, I just need to save myself time and prevent miscounting errors.
Any help would be appreciated.
Hello. I am having a hard time figuring out how to use functions to count the number of staff I have working during each hour of the day. I am a beginner, but I enlisted the help of someone who has more experience and they aren’t able to figure it out either. I have 45 employees in a 24/7 department, so there are night shift staff that start on 1 day and finish on the next – that is throwing a huge wrench into things. The schedule also has 30 minute lunches built into their day, so there is a 30 minute overlap that I don’t want to include those people into. I do my schedule in excel per pay period as shown below. I am willing to adapt the way I currently do the schedule if needed, I just need to save myself time and prevent miscounting errors. Any help would be appreciated. Read More
after input values and push preview doesn’t display in UIAxes
classdef app1 < matlab.apps.AppBase
% Properties that correspond to app components
properties (Access = public)
UIFigure matlab.ui.Figure
Toolbar matlab.ui.container.Toolbar
PushTool matlab.ui.container.toolbar.PushTool
EditField3_5 matlab.ui.control.NumericEditField
EditField2_5 matlab.ui.control.NumericEditField
EditField2_4 matlab.ui.control.NumericEditField
EditField3_4 matlab.ui.control.NumericEditField
EditField2_3 matlab.ui.control.NumericEditField
EditField2_2 matlab.ui.control.NumericEditField
EditField3_3 matlab.ui.control.NumericEditField
EditField3_2 matlab.ui.control.NumericEditField
EditField3 matlab.ui.control.NumericEditField
EditField2 matlab.ui.control.NumericEditField
DimensionPrpertyLabel matlab.ui.control.Label
PhaseLabel matlab.ui.control.Label
ElementDataLabel matlab.ui.control.Label
DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel matlab.ui.control.Label
CSTButton matlab.ui.control.Button
PreviewButton matlab.ui.control.Button
PhaseReference matlab.ui.control.NumericEditField
PhaseReferenceEditFieldLabel matlab.ui.control.Label
UnitElementDimensionsLabel matlab.ui.control.Label
Y matlab.ui.control.NumericEditField
YEditFieldLabel matlab.ui.control.Label
X matlab.ui.control.NumericEditField
XEditFieldLabel matlab.ui.control.Label
BeamDirectionLabel matlab.ui.control.Label
Azimuth matlab.ui.control.NumericEditField
AzimuthEditFieldLabel matlab.ui.control.Label
Elevation matlab.ui.control.NumericEditField
ElevationEditFieldLabel matlab.ui.control.Label
PhaseCenterCoordinates matlab.ui.control.Label
z matlab.ui.control.NumericEditField
zEditFieldLabel matlab.ui.control.Label
y matlab.ui.control.NumericEditField
yEditFieldLabel matlab.ui.control.Label
x matlab.ui.control.NumericEditField
xEditFieldLabel matlab.ui.control.Label
Image matlab.ui.control.Image
Frequency matlab.ui.control.NumericEditField
FrequencyEditFieldLabel matlab.ui.control.Label
Antennaradius matlab.ui.control.NumericEditField
AntennaradiusEditFieldLabel matlab.ui.control.Label
DesignareflectarrayLabel matlab.ui.control.Label
UIAxes matlab.ui.control.UIAxes
end
% Callbacks that handle component events
methods (Access = private)
% Button pushed function: CSTButton
function CSTButtonPushed(app, event)
% — Executes on button press in pushbutton2.
% Create GUIDE-style callback args – Added by Migration Tool
[hObject, eventdata, handles] = convertToGUIDECallbackArguments(app, event); %#ok<ASGLU>
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
handles = guidata(hObject);
addpath(genpath(‘C:UsersseymurDesktopcst-matlabCST-MATLAB-API-master’));
cst = actxserver(‘CSTStudio.application’);
mws = cst.invoke(‘NewMWS’);
cst = actxserver(‘CSTStudio.Application’);
mws = cst.OpenFile(‘path_to_your_cst_file.cst’);
fmin=2.2;
fmax=2.6;
function CstDefineFrequencyRange(mws, startFreq, endFreq)
mws.invoke(‘FrequencyRange’, ‘Define’, startFreq, endFreq);
end
mws = cst.invoke(‘NewMWS’);
Xmin=’expanded open’;
Xmax=’expanded open’;
Ymin=’expanded open’;
Ymax=’expanded open’;
Zmin=’expanded open’;
Zmax=’expanded open’;
minfrequency = fmin;
function CstDefineOpenBoundary(mws, minfrequency, Xmin, Xmax, Ymin, Ymax, Zmin, Zmax)
% CstDefineOpenBoundary – Defines the open boundary in CST.
%
% Inputs:
% mws – CST Microwave Studio object
% minfrequency – Minimum frequency for the boundary
% Xmin, Xmax, Ymin, Ymax, Zmin, Zmax – Boundary limits in each direction
% Assuming CST’s boundary settings are being configured using invoke calls
invoke(mws, ‘Boundary’, ‘Define’, ‘Xmin’, Xmin);
invoke(mws, ‘Boundary’, ‘Define’, ‘Xmax’, Xmax);
invoke(mws, ‘Boundary’, ‘Define’, ‘Ymin’, Ymin);
invoke(mws, ‘Boundary’, ‘Define’, ‘Ymax’, Ymax);
invoke(mws, ‘Boundary’, ‘Define’, ‘Zmin’, Zmin);
invoke(mws, ‘Boundary’, ‘Define’, ‘Zmax’, Zmax);
% Set minimum frequency (this part may vary depending on how CST handles this)
invoke(mws, ‘Solver’, ‘FrequencyRange’, minfrequency);
end
freq = app.Frequency.Value * 10^9;
lambda = physconst(‘LightSpeed’)*1000/freq;
k=2*pi/lambda;
ix=1;
iy=1;
data=handles.data;
phas_u=data(:,1)’;
dim_u=data(:,2)’;
the_dir = app.Elevation.Value;
phi_dir = app.Azimuth.Value;
pha_zer = app.PhaseReference.Value;
x_cor = app.x.Value;
y_cor = app.y.Value;
z_cor = app.z.Value;
rad = app.Antennaradius.Value;
uedimx = app.X.Value;
uedimy = app.Y.Value;
for xi=-rad/2+mod(rad/2,uedimx):uedimx:rad/2
for yi=-rad/2+mod(rad/2,uedimy):uedimy:rad/2
if sqrt(xi^2+yi^2)<rad/2
R = sqrt((x_cor-xi)^2+(y_cor-yi)^2+z_cor^2);
phase(ix,iy)=k*(R-sind(the_dir)*(xi*cosd(phi_dir)+yi*sind(phi_dir)))+pha_zer;
m_phase=mod(phase(ix,iy),2*pi);
m_phase_deg=m_phase*180/pi-180;
% phas_lin_map=m_phase_deg*m+n;
if m_phase_deg > phas_u(1,1)
phas_lin_map = phas_u(1,1);
elseif m_phase_deg < phas_u(1,end)
phas_lin_map = phas_u(end,1);
else
dy = diff([0 phas_u]);
dyix = find(dy == 0);
dim_u(dyix) = dim_u(dyix-1)+1E-8;
phas_lin_map = interp1(phas_u, dim_u, m_phase_deg);
end
else
phase(ix,iy)=0;
end
iy=iy+1;
end
ix=ix+1;
iy=1;
end
m_phase=mod(phase,2*pi);
m_phase_deg=m_phase*180/pi;
m_phase_deg(:);
surf(app.UIAxes, m_phase_deg);
view(app.UIAxes, 2);
surf(m_phase_deg)
view(2)
guidata(hObject, handles);
end
% Value changed function: Antennaradius, Frequency
function AntennaradiusEditFieldValueChanged(app, event)
value = app.Antennaradius.Value;
end
% Button pushed function: PreviewButton
function PreviewButtonPushed(app, event)
% Button pushed function: PreviewButton
function PreviewButtonPushed(app, event)
% Create GUIDE-style callback args – Added by Migration Tool
[hObject, eventdata, handles] = convertToGUIDECallbackArguments(app, event); %#ok<ASGLU>
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
handles = guidata(hObject);
% Frequency
freq = app.Frequency.Value * 10^9;
lambda = physconst(‘LightSpeed’) * 1000 / freq;
k = 2 * pi / lambda;
ix = 1;
iy = 1;
% Sample data (Replace with actual data assignment)
data = [140 0.2; 130 1.5; 0 2.5; -150 3.5; -175 4.5];
phas_u = data(:,1)’;
dim_u = data(:,2)’;
the_dir = app.Elevation.Value;
phi_dir = app.Azimuth.Value;
pha_zer = app.PhaseReference.Value;
x_cor = app.x.Value;
y_cor = app.y.Value;
z_cor = app.z.Value;
rad = app.Antennaradius.Value;
uedimx = app.X.Value;
uedimy = app.Y.Value;
% Initialize phase array
phase = zeros(round(rad/uedimx), round(rad/uedimy));
for xi = -rad/2+mod(rad/2,uedimx):uedimx:rad/2
for yi = -rad/2+mod(rad/2,uedimy):uedimy:rad/2
if sqrt(xi^2+yi^2) < rad/2
R = sqrt((x_cor-xi)^2 + (y_cor-yi)^2 + z_cor^2);
phase(ix, iy) = k * (R – sind(the_dir) * (xi * cosd(phi_dir) + yi * sind(phi_dir))) + pha_zer;
m_phase = mod(phase(ix, iy), 2*pi);
m_phase_deg = m_phase * 180 / pi – 180;
if m_phase_deg > phas_u(1,1)
phas_lin_map = phas_u(1,1);
elseif m_phase_deg < phas_u(1,end)
phas_lin_map = phas_u(end,1);
else
dy = diff([0 phas_u]);
dyix = find(dy == 0);
dim_u(dyix) = dim_u(dyix-1) + 1E-8;
phas_lin_map = interp1(phas_u, dim_u, m_phase_deg);
end
else
phase(ix, iy) = 0;
end
iy = iy + 1;
end
ix = ix + 1;
iy = 1;
end
% Convert to degrees
m_phase = mod(phase, 2*pi);
m_phase_deg = m_phase * 180 / pi;
% Debugging
disp(‘Phase (degrees):’);
disp(m_phase_deg);
% Plotting
surf(app.UIAxes, m_phase_deg);
view(app.UIAxes, 2);
guidata(hObject, handles);
end
end
% Close request function: UIFigure
function UIFigureCloseRequest(app, event)
delete(app)
end
% Value changed function: EditField2
function EditField2ValueChanged(app, event)
value = app.EditField2.Value;
end
end
% Component initialization
methods (Access = private)
% Create UIFigure and components
function createComponents(app)
% Get the file path for locating images
pathToMLAPP = fileparts(mfilename(‘fullpath’));
% Create UIFigure and hide until all components are created
app.UIFigure = uifigure(‘Visible’, ‘off’);
app.UIFigure.Color = [0.502 0.502 0.502];
app.UIFigure.Position = [100 100 984 624];
app.UIFigure.Name = ‘MATLAB App’;
app.UIFigure.CloseRequestFcn = createCallbackFcn(app, @UIFigureCloseRequest, true);
% Create Toolbar
app.Toolbar = uitoolbar(app.UIFigure);
% Create PushTool
app.PushTool = uipushtool(app.Toolbar);
app.PushTool.Icon = fullfile(pathToMLAPP, ‘images.png’);
% Create UIAxes
app.UIAxes = uiaxes(app.UIFigure);
app.UIAxes.XColor = [0 0 0];
app.UIAxes.Position = [602 321 329 262];
% Create DesignareflectarrayLabel
app.DesignareflectarrayLabel = uilabel(app.UIFigure);
app.DesignareflectarrayLabel.FontSize = 24;
app.DesignareflectarrayLabel.FontWeight = ‘bold’;
app.DesignareflectarrayLabel.Position = [363 593 261 32];
app.DesignareflectarrayLabel.Text = ‘Design a reflectarray ‘;
% Create AntennaradiusEditFieldLabel
app.AntennaradiusEditFieldLabel = uilabel(app.UIFigure);
app.AntennaradiusEditFieldLabel.HorizontalAlignment = ‘center’;
app.AntennaradiusEditFieldLabel.Position = [22 553 53 30];
app.AntennaradiusEditFieldLabel.Text = {‘Antenna ‘; ‘radius’};
% Create Antennaradius
app.Antennaradius = uieditfield(app.UIFigure, ‘numeric’);
app.Antennaradius.ValueChangedFcn = createCallbackFcn(app, @AntennaradiusEditFieldValueChanged, true);
app.Antennaradius.Position = [90 561 100 22];
% Create FrequencyEditFieldLabel
app.FrequencyEditFieldLabel = uilabel(app.UIFigure);
app.FrequencyEditFieldLabel.HorizontalAlignment = ‘right’;
app.FrequencyEditFieldLabel.Position = [10 522 65 22];
app.FrequencyEditFieldLabel.Text = ‘Frequency ‘;
% Create Frequency
app.Frequency = uieditfield(app.UIFigure, ‘numeric’);
app.Frequency.RoundFractionalValues = ‘on’;
app.Frequency.ValueChangedFcn = createCallbackFcn(app, @AntennaradiusEditFieldValueChanged, true);
app.Frequency.Position = [90 522 100 22];
% Create Image
app.Image = uiimage(app.UIFigure);
app.Image.Position = [231 345 370 219];
app.Image.ImageSource = fullfile(pathToMLAPP, ‘images.png’);
% Create xEditFieldLabel
app.xEditFieldLabel = uilabel(app.UIFigure);
app.xEditFieldLabel.HorizontalAlignment = ‘right’;
app.xEditFieldLabel.Position = [30 447 25 22];
app.xEditFieldLabel.Text = ‘x’;
% Create x
app.x = uieditfield(app.UIFigure, ‘numeric’);
app.x.Position = [70 447 100 22];
% Create yEditFieldLabel
app.yEditFieldLabel = uilabel(app.UIFigure);
app.yEditFieldLabel.HorizontalAlignment = ‘right’;
app.yEditFieldLabel.Position = [30 402 25 22];
app.yEditFieldLabel.Text = ‘y’;
% Create y
app.y = uieditfield(app.UIFigure, ‘numeric’);
app.y.Position = [70 402 100 22];
% Create zEditFieldLabel
app.zEditFieldLabel = uilabel(app.UIFigure);
app.zEditFieldLabel.HorizontalAlignment = ‘right’;
app.zEditFieldLabel.Position = [30 360 25 22];
app.zEditFieldLabel.Text = ‘z’;
% Create z
app.z = uieditfield(app.UIFigure, ‘numeric’);
app.z.Position = [70 360 100 22];
% Create PhaseCenterCoordinates
app.PhaseCenterCoordinates = uilabel(app.UIFigure);
app.PhaseCenterCoordinates.FontSize = 14;
app.PhaseCenterCoordinates.Position = [22 489 170 22];
app.PhaseCenterCoordinates.Text = ‘Phase Center Coordinates’;
% Create ElevationEditFieldLabel
app.ElevationEditFieldLabel = uilabel(app.UIFigure);
app.ElevationEditFieldLabel.HorizontalAlignment = ‘right’;
app.ElevationEditFieldLabel.Position = [15 285 54 22];
app.ElevationEditFieldLabel.Text = ‘Elevation’;
% Create Elevation
app.Elevation = uieditfield(app.UIFigure, ‘numeric’);
app.Elevation.Position = [84 285 64 22];
% Create AzimuthEditFieldLabel
app.AzimuthEditFieldLabel = uilabel(app.UIFigure);
app.AzimuthEditFieldLabel.HorizontalAlignment = ‘right’;
app.AzimuthEditFieldLabel.Position = [15 255 48 22];
app.AzimuthEditFieldLabel.Text = ‘Azimuth’;
% Create Azimuth
app.Azimuth = uieditfield(app.UIFigure, ‘numeric’);
app.Azimuth.Position = [84 255 64 22];
% Create BeamDirectionLabel
app.BeamDirectionLabel = uilabel(app.UIFigure);
app.BeamDirectionLabel.FontSize = 14;
app.BeamDirectionLabel.Position = [10 321 101 22];
app.BeamDirectionLabel.Text = ‘Beam Direction’;
% Create XEditFieldLabel
app.XEditFieldLabel = uilabel(app.UIFigure);
app.XEditFieldLabel.HorizontalAlignment = ‘right’;
app.XEditFieldLabel.Position = [31 174 25 22];
app.XEditFieldLabel.Text = ‘X’;
% Create X
app.X = uieditfield(app.UIFigure, ‘numeric’);
app.X.Position = [71 174 98 22];
% Create YEditFieldLabel
app.YEditFieldLabel = uilabel(app.UIFigure);
app.YEditFieldLabel.HorizontalAlignment = ‘right’;
app.YEditFieldLabel.Position = [29 126 25 22];
app.YEditFieldLabel.Text = ‘Y’;
% Create Y
app.Y = uieditfield(app.UIFigure, ‘numeric’);
app.Y.Position = [69 126 100 22];
% Create UnitElementDimensionsLabel
app.UnitElementDimensionsLabel = uilabel(app.UIFigure);
app.UnitElementDimensionsLabel.FontSize = 14;
app.UnitElementDimensionsLabel.Position = [15 216 162 22];
app.UnitElementDimensionsLabel.Text = ‘Unit Element Dimensions’;
% Create PhaseReferenceEditFieldLabel
app.PhaseReferenceEditFieldLabel = uilabel(app.UIFigure);
app.PhaseReferenceEditFieldLabel.HorizontalAlignment = ‘right’;
app.PhaseReferenceEditFieldLabel.Position = [9 83 98 22];
app.PhaseReferenceEditFieldLabel.Text = ‘Phase Reference’;
% Create PhaseReference
app.PhaseReference = uieditfield(app.UIFigure, ‘numeric’);
app.PhaseReference.Position = [130 83 58 22];
% Create PreviewButton
app.PreviewButton = uibutton(app.UIFigure, ‘push’);
app.PreviewButton.ButtonPushedFcn = createCallbackFcn(app, @PreviewButtonPushed, true);
app.PreviewButton.FontSize = 14;
app.PreviewButton.Position = [731 250 110 25];
app.PreviewButton.Text = ‘Preview’;
% Create CSTButton
app.CSTButton = uibutton(app.UIFigure, ‘push’);
app.CSTButton.ButtonPushedFcn = createCallbackFcn(app, @CSTButtonPushed, true);
app.CSTButton.FontSize = 14;
app.CSTButton.Position = [731 160 110 25];
app.CSTButton.Text = ‘ CST’;
% Create DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel = uilabel(app.UIFigure);
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel.BackgroundColor = [0.651 0.651 0.651];
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel.FontSize = 14;
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel.Position = [661 39 260 76];
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel.Text = {‘Desigener Eng .Abdullah Sabah Ibrahim’; ‘Air Navigation Engineer’; ‘uabd704@gmail.com’};
% Create ElementDataLabel
app.ElementDataLabel = uilabel(app.UIFigure);
app.ElementDataLabel.BackgroundColor = [0.502 0.502 0.502];
app.ElementDataLabel.FontSize = 14;
app.ElementDataLabel.Position = [320 310 142 27];
app.ElementDataLabel.Text = ‘Element Data’;
% Create PhaseLabel
app.PhaseLabel = uilabel(app.UIFigure);
app.PhaseLabel.Position = [326 281 39 22];
app.PhaseLabel.Text = ‘Phase’;
% Create DimensionPrpertyLabel
app.DimensionPrpertyLabel = uilabel(app.UIFigure);
app.DimensionPrpertyLabel.Position = [461 276 104 22];
app.DimensionPrpertyLabel.Text = ‘Dimension/Prperty’;
% Create EditField2
app.EditField2 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2.ValueChangedFcn = createCallbackFcn(app, @EditField2ValueChanged, true);
app.EditField2.Position = [461 242 100 22];
app.EditField2.Value = 0.2;
% Create EditField3
app.EditField3 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3.Position = [321 243 100 22];
app.EditField3.Value = 140;
% Create EditField3_2
app.EditField3_2 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3_2.Position = [320.997694832939 203.000512259345 100 22];
app.EditField3_2.Value = 130;
% Create EditField3_3
app.EditField3_3 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3_3.Position = [320.995929173063 161.393369402201 100 22];
% Create EditField2_2
app.EditField2_2 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2_2.Position = [461 203 100 22];
app.EditField2_2.Value = 1.5;
% Create EditField2_3
app.EditField2_3 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2_3.Position = [461 163 100 22];
app.EditField2_3.Value = 2.5;
% Create EditField3_4
app.EditField3_4 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3_4.Position = [321 123 100 22];
app.EditField3_4.Value = -150;
% Create EditField2_4
app.EditField2_4 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2_4.Position = [460.107943943571 122.820894513809 100 22];
app.EditField2_4.Value = 3.5;
% Create EditField2_5
app.EditField2_5 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2_5.Position = [461 83 100 22];
app.EditField2_5.Value = 4.5;
% Create EditField3_5
app.EditField3_5 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3_5.Position = [320.997989109585 81.5705348423533 100 22];
app.EditField3_5.Value = -175;
% Show the figure after all components are created
app.UIFigure.Visible = ‘on’;
end
end
% App creation and deletion
methods (Access = public)
% Construct app
function app = app1
% Create UIFigure and components
createComponents(app)
% Register the app with App Designer
registerApp(app, app.UIFigure)
if nargout == 0
clear app
end
end
% Code that executes before app deletion
function delete(app)
% Delete UIFigure when app is deleted
delete(app.UIFigure)
end
end
endclassdef app1 < matlab.apps.AppBase
% Properties that correspond to app components
properties (Access = public)
UIFigure matlab.ui.Figure
Toolbar matlab.ui.container.Toolbar
PushTool matlab.ui.container.toolbar.PushTool
EditField3_5 matlab.ui.control.NumericEditField
EditField2_5 matlab.ui.control.NumericEditField
EditField2_4 matlab.ui.control.NumericEditField
EditField3_4 matlab.ui.control.NumericEditField
EditField2_3 matlab.ui.control.NumericEditField
EditField2_2 matlab.ui.control.NumericEditField
EditField3_3 matlab.ui.control.NumericEditField
EditField3_2 matlab.ui.control.NumericEditField
EditField3 matlab.ui.control.NumericEditField
EditField2 matlab.ui.control.NumericEditField
DimensionPrpertyLabel matlab.ui.control.Label
PhaseLabel matlab.ui.control.Label
ElementDataLabel matlab.ui.control.Label
DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel matlab.ui.control.Label
CSTButton matlab.ui.control.Button
PreviewButton matlab.ui.control.Button
PhaseReference matlab.ui.control.NumericEditField
PhaseReferenceEditFieldLabel matlab.ui.control.Label
UnitElementDimensionsLabel matlab.ui.control.Label
Y matlab.ui.control.NumericEditField
YEditFieldLabel matlab.ui.control.Label
X matlab.ui.control.NumericEditField
XEditFieldLabel matlab.ui.control.Label
BeamDirectionLabel matlab.ui.control.Label
Azimuth matlab.ui.control.NumericEditField
AzimuthEditFieldLabel matlab.ui.control.Label
Elevation matlab.ui.control.NumericEditField
ElevationEditFieldLabel matlab.ui.control.Label
PhaseCenterCoordinates matlab.ui.control.Label
z matlab.ui.control.NumericEditField
zEditFieldLabel matlab.ui.control.Label
y matlab.ui.control.NumericEditField
yEditFieldLabel matlab.ui.control.Label
x matlab.ui.control.NumericEditField
xEditFieldLabel matlab.ui.control.Label
Image matlab.ui.control.Image
Frequency matlab.ui.control.NumericEditField
FrequencyEditFieldLabel matlab.ui.control.Label
Antennaradius matlab.ui.control.NumericEditField
AntennaradiusEditFieldLabel matlab.ui.control.Label
DesignareflectarrayLabel matlab.ui.control.Label
UIAxes matlab.ui.control.UIAxes
end
% Callbacks that handle component events
methods (Access = private)
% Button pushed function: CSTButton
function CSTButtonPushed(app, event)
% — Executes on button press in pushbutton2.
% Create GUIDE-style callback args – Added by Migration Tool
[hObject, eventdata, handles] = convertToGUIDECallbackArguments(app, event); %#ok<ASGLU>
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
handles = guidata(hObject);
addpath(genpath(‘C:UsersseymurDesktopcst-matlabCST-MATLAB-API-master’));
cst = actxserver(‘CSTStudio.application’);
mws = cst.invoke(‘NewMWS’);
cst = actxserver(‘CSTStudio.Application’);
mws = cst.OpenFile(‘path_to_your_cst_file.cst’);
fmin=2.2;
fmax=2.6;
function CstDefineFrequencyRange(mws, startFreq, endFreq)
mws.invoke(‘FrequencyRange’, ‘Define’, startFreq, endFreq);
end
mws = cst.invoke(‘NewMWS’);
Xmin=’expanded open’;
Xmax=’expanded open’;
Ymin=’expanded open’;
Ymax=’expanded open’;
Zmin=’expanded open’;
Zmax=’expanded open’;
minfrequency = fmin;
function CstDefineOpenBoundary(mws, minfrequency, Xmin, Xmax, Ymin, Ymax, Zmin, Zmax)
% CstDefineOpenBoundary – Defines the open boundary in CST.
%
% Inputs:
% mws – CST Microwave Studio object
% minfrequency – Minimum frequency for the boundary
% Xmin, Xmax, Ymin, Ymax, Zmin, Zmax – Boundary limits in each direction
% Assuming CST’s boundary settings are being configured using invoke calls
invoke(mws, ‘Boundary’, ‘Define’, ‘Xmin’, Xmin);
invoke(mws, ‘Boundary’, ‘Define’, ‘Xmax’, Xmax);
invoke(mws, ‘Boundary’, ‘Define’, ‘Ymin’, Ymin);
invoke(mws, ‘Boundary’, ‘Define’, ‘Ymax’, Ymax);
invoke(mws, ‘Boundary’, ‘Define’, ‘Zmin’, Zmin);
invoke(mws, ‘Boundary’, ‘Define’, ‘Zmax’, Zmax);
% Set minimum frequency (this part may vary depending on how CST handles this)
invoke(mws, ‘Solver’, ‘FrequencyRange’, minfrequency);
end
freq = app.Frequency.Value * 10^9;
lambda = physconst(‘LightSpeed’)*1000/freq;
k=2*pi/lambda;
ix=1;
iy=1;
data=handles.data;
phas_u=data(:,1)’;
dim_u=data(:,2)’;
the_dir = app.Elevation.Value;
phi_dir = app.Azimuth.Value;
pha_zer = app.PhaseReference.Value;
x_cor = app.x.Value;
y_cor = app.y.Value;
z_cor = app.z.Value;
rad = app.Antennaradius.Value;
uedimx = app.X.Value;
uedimy = app.Y.Value;
for xi=-rad/2+mod(rad/2,uedimx):uedimx:rad/2
for yi=-rad/2+mod(rad/2,uedimy):uedimy:rad/2
if sqrt(xi^2+yi^2)<rad/2
R = sqrt((x_cor-xi)^2+(y_cor-yi)^2+z_cor^2);
phase(ix,iy)=k*(R-sind(the_dir)*(xi*cosd(phi_dir)+yi*sind(phi_dir)))+pha_zer;
m_phase=mod(phase(ix,iy),2*pi);
m_phase_deg=m_phase*180/pi-180;
% phas_lin_map=m_phase_deg*m+n;
if m_phase_deg > phas_u(1,1)
phas_lin_map = phas_u(1,1);
elseif m_phase_deg < phas_u(1,end)
phas_lin_map = phas_u(end,1);
else
dy = diff([0 phas_u]);
dyix = find(dy == 0);
dim_u(dyix) = dim_u(dyix-1)+1E-8;
phas_lin_map = interp1(phas_u, dim_u, m_phase_deg);
end
else
phase(ix,iy)=0;
end
iy=iy+1;
end
ix=ix+1;
iy=1;
end
m_phase=mod(phase,2*pi);
m_phase_deg=m_phase*180/pi;
m_phase_deg(:);
surf(app.UIAxes, m_phase_deg);
view(app.UIAxes, 2);
surf(m_phase_deg)
view(2)
guidata(hObject, handles);
end
% Value changed function: Antennaradius, Frequency
function AntennaradiusEditFieldValueChanged(app, event)
value = app.Antennaradius.Value;
end
% Button pushed function: PreviewButton
function PreviewButtonPushed(app, event)
% Button pushed function: PreviewButton
function PreviewButtonPushed(app, event)
% Create GUIDE-style callback args – Added by Migration Tool
[hObject, eventdata, handles] = convertToGUIDECallbackArguments(app, event); %#ok<ASGLU>
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
handles = guidata(hObject);
% Frequency
freq = app.Frequency.Value * 10^9;
lambda = physconst(‘LightSpeed’) * 1000 / freq;
k = 2 * pi / lambda;
ix = 1;
iy = 1;
% Sample data (Replace with actual data assignment)
data = [140 0.2; 130 1.5; 0 2.5; -150 3.5; -175 4.5];
phas_u = data(:,1)’;
dim_u = data(:,2)’;
the_dir = app.Elevation.Value;
phi_dir = app.Azimuth.Value;
pha_zer = app.PhaseReference.Value;
x_cor = app.x.Value;
y_cor = app.y.Value;
z_cor = app.z.Value;
rad = app.Antennaradius.Value;
uedimx = app.X.Value;
uedimy = app.Y.Value;
% Initialize phase array
phase = zeros(round(rad/uedimx), round(rad/uedimy));
for xi = -rad/2+mod(rad/2,uedimx):uedimx:rad/2
for yi = -rad/2+mod(rad/2,uedimy):uedimy:rad/2
if sqrt(xi^2+yi^2) < rad/2
R = sqrt((x_cor-xi)^2 + (y_cor-yi)^2 + z_cor^2);
phase(ix, iy) = k * (R – sind(the_dir) * (xi * cosd(phi_dir) + yi * sind(phi_dir))) + pha_zer;
m_phase = mod(phase(ix, iy), 2*pi);
m_phase_deg = m_phase * 180 / pi – 180;
if m_phase_deg > phas_u(1,1)
phas_lin_map = phas_u(1,1);
elseif m_phase_deg < phas_u(1,end)
phas_lin_map = phas_u(end,1);
else
dy = diff([0 phas_u]);
dyix = find(dy == 0);
dim_u(dyix) = dim_u(dyix-1) + 1E-8;
phas_lin_map = interp1(phas_u, dim_u, m_phase_deg);
end
else
phase(ix, iy) = 0;
end
iy = iy + 1;
end
ix = ix + 1;
iy = 1;
end
% Convert to degrees
m_phase = mod(phase, 2*pi);
m_phase_deg = m_phase * 180 / pi;
% Debugging
disp(‘Phase (degrees):’);
disp(m_phase_deg);
% Plotting
surf(app.UIAxes, m_phase_deg);
view(app.UIAxes, 2);
guidata(hObject, handles);
end
end
% Close request function: UIFigure
function UIFigureCloseRequest(app, event)
delete(app)
end
% Value changed function: EditField2
function EditField2ValueChanged(app, event)
value = app.EditField2.Value;
end
end
% Component initialization
methods (Access = private)
% Create UIFigure and components
function createComponents(app)
% Get the file path for locating images
pathToMLAPP = fileparts(mfilename(‘fullpath’));
% Create UIFigure and hide until all components are created
app.UIFigure = uifigure(‘Visible’, ‘off’);
app.UIFigure.Color = [0.502 0.502 0.502];
app.UIFigure.Position = [100 100 984 624];
app.UIFigure.Name = ‘MATLAB App’;
app.UIFigure.CloseRequestFcn = createCallbackFcn(app, @UIFigureCloseRequest, true);
% Create Toolbar
app.Toolbar = uitoolbar(app.UIFigure);
% Create PushTool
app.PushTool = uipushtool(app.Toolbar);
app.PushTool.Icon = fullfile(pathToMLAPP, ‘images.png’);
% Create UIAxes
app.UIAxes = uiaxes(app.UIFigure);
app.UIAxes.XColor = [0 0 0];
app.UIAxes.Position = [602 321 329 262];
% Create DesignareflectarrayLabel
app.DesignareflectarrayLabel = uilabel(app.UIFigure);
app.DesignareflectarrayLabel.FontSize = 24;
app.DesignareflectarrayLabel.FontWeight = ‘bold’;
app.DesignareflectarrayLabel.Position = [363 593 261 32];
app.DesignareflectarrayLabel.Text = ‘Design a reflectarray ‘;
% Create AntennaradiusEditFieldLabel
app.AntennaradiusEditFieldLabel = uilabel(app.UIFigure);
app.AntennaradiusEditFieldLabel.HorizontalAlignment = ‘center’;
app.AntennaradiusEditFieldLabel.Position = [22 553 53 30];
app.AntennaradiusEditFieldLabel.Text = {‘Antenna ‘; ‘radius’};
% Create Antennaradius
app.Antennaradius = uieditfield(app.UIFigure, ‘numeric’);
app.Antennaradius.ValueChangedFcn = createCallbackFcn(app, @AntennaradiusEditFieldValueChanged, true);
app.Antennaradius.Position = [90 561 100 22];
% Create FrequencyEditFieldLabel
app.FrequencyEditFieldLabel = uilabel(app.UIFigure);
app.FrequencyEditFieldLabel.HorizontalAlignment = ‘right’;
app.FrequencyEditFieldLabel.Position = [10 522 65 22];
app.FrequencyEditFieldLabel.Text = ‘Frequency ‘;
% Create Frequency
app.Frequency = uieditfield(app.UIFigure, ‘numeric’);
app.Frequency.RoundFractionalValues = ‘on’;
app.Frequency.ValueChangedFcn = createCallbackFcn(app, @AntennaradiusEditFieldValueChanged, true);
app.Frequency.Position = [90 522 100 22];
% Create Image
app.Image = uiimage(app.UIFigure);
app.Image.Position = [231 345 370 219];
app.Image.ImageSource = fullfile(pathToMLAPP, ‘images.png’);
% Create xEditFieldLabel
app.xEditFieldLabel = uilabel(app.UIFigure);
app.xEditFieldLabel.HorizontalAlignment = ‘right’;
app.xEditFieldLabel.Position = [30 447 25 22];
app.xEditFieldLabel.Text = ‘x’;
% Create x
app.x = uieditfield(app.UIFigure, ‘numeric’);
app.x.Position = [70 447 100 22];
% Create yEditFieldLabel
app.yEditFieldLabel = uilabel(app.UIFigure);
app.yEditFieldLabel.HorizontalAlignment = ‘right’;
app.yEditFieldLabel.Position = [30 402 25 22];
app.yEditFieldLabel.Text = ‘y’;
% Create y
app.y = uieditfield(app.UIFigure, ‘numeric’);
app.y.Position = [70 402 100 22];
% Create zEditFieldLabel
app.zEditFieldLabel = uilabel(app.UIFigure);
app.zEditFieldLabel.HorizontalAlignment = ‘right’;
app.zEditFieldLabel.Position = [30 360 25 22];
app.zEditFieldLabel.Text = ‘z’;
% Create z
app.z = uieditfield(app.UIFigure, ‘numeric’);
app.z.Position = [70 360 100 22];
% Create PhaseCenterCoordinates
app.PhaseCenterCoordinates = uilabel(app.UIFigure);
app.PhaseCenterCoordinates.FontSize = 14;
app.PhaseCenterCoordinates.Position = [22 489 170 22];
app.PhaseCenterCoordinates.Text = ‘Phase Center Coordinates’;
% Create ElevationEditFieldLabel
app.ElevationEditFieldLabel = uilabel(app.UIFigure);
app.ElevationEditFieldLabel.HorizontalAlignment = ‘right’;
app.ElevationEditFieldLabel.Position = [15 285 54 22];
app.ElevationEditFieldLabel.Text = ‘Elevation’;
% Create Elevation
app.Elevation = uieditfield(app.UIFigure, ‘numeric’);
app.Elevation.Position = [84 285 64 22];
% Create AzimuthEditFieldLabel
app.AzimuthEditFieldLabel = uilabel(app.UIFigure);
app.AzimuthEditFieldLabel.HorizontalAlignment = ‘right’;
app.AzimuthEditFieldLabel.Position = [15 255 48 22];
app.AzimuthEditFieldLabel.Text = ‘Azimuth’;
% Create Azimuth
app.Azimuth = uieditfield(app.UIFigure, ‘numeric’);
app.Azimuth.Position = [84 255 64 22];
% Create BeamDirectionLabel
app.BeamDirectionLabel = uilabel(app.UIFigure);
app.BeamDirectionLabel.FontSize = 14;
app.BeamDirectionLabel.Position = [10 321 101 22];
app.BeamDirectionLabel.Text = ‘Beam Direction’;
% Create XEditFieldLabel
app.XEditFieldLabel = uilabel(app.UIFigure);
app.XEditFieldLabel.HorizontalAlignment = ‘right’;
app.XEditFieldLabel.Position = [31 174 25 22];
app.XEditFieldLabel.Text = ‘X’;
% Create X
app.X = uieditfield(app.UIFigure, ‘numeric’);
app.X.Position = [71 174 98 22];
% Create YEditFieldLabel
app.YEditFieldLabel = uilabel(app.UIFigure);
app.YEditFieldLabel.HorizontalAlignment = ‘right’;
app.YEditFieldLabel.Position = [29 126 25 22];
app.YEditFieldLabel.Text = ‘Y’;
% Create Y
app.Y = uieditfield(app.UIFigure, ‘numeric’);
app.Y.Position = [69 126 100 22];
% Create UnitElementDimensionsLabel
app.UnitElementDimensionsLabel = uilabel(app.UIFigure);
app.UnitElementDimensionsLabel.FontSize = 14;
app.UnitElementDimensionsLabel.Position = [15 216 162 22];
app.UnitElementDimensionsLabel.Text = ‘Unit Element Dimensions’;
% Create PhaseReferenceEditFieldLabel
app.PhaseReferenceEditFieldLabel = uilabel(app.UIFigure);
app.PhaseReferenceEditFieldLabel.HorizontalAlignment = ‘right’;
app.PhaseReferenceEditFieldLabel.Position = [9 83 98 22];
app.PhaseReferenceEditFieldLabel.Text = ‘Phase Reference’;
% Create PhaseReference
app.PhaseReference = uieditfield(app.UIFigure, ‘numeric’);
app.PhaseReference.Position = [130 83 58 22];
% Create PreviewButton
app.PreviewButton = uibutton(app.UIFigure, ‘push’);
app.PreviewButton.ButtonPushedFcn = createCallbackFcn(app, @PreviewButtonPushed, true);
app.PreviewButton.FontSize = 14;
app.PreviewButton.Position = [731 250 110 25];
app.PreviewButton.Text = ‘Preview’;
% Create CSTButton
app.CSTButton = uibutton(app.UIFigure, ‘push’);
app.CSTButton.ButtonPushedFcn = createCallbackFcn(app, @CSTButtonPushed, true);
app.CSTButton.FontSize = 14;
app.CSTButton.Position = [731 160 110 25];
app.CSTButton.Text = ‘ CST’;
% Create DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel = uilabel(app.UIFigure);
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel.BackgroundColor = [0.651 0.651 0.651];
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel.FontSize = 14;
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel.Position = [661 39 260 76];
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel.Text = {‘Desigener Eng .Abdullah Sabah Ibrahim’; ‘Air Navigation Engineer’; ‘uabd704@gmail.com’};
% Create ElementDataLabel
app.ElementDataLabel = uilabel(app.UIFigure);
app.ElementDataLabel.BackgroundColor = [0.502 0.502 0.502];
app.ElementDataLabel.FontSize = 14;
app.ElementDataLabel.Position = [320 310 142 27];
app.ElementDataLabel.Text = ‘Element Data’;
% Create PhaseLabel
app.PhaseLabel = uilabel(app.UIFigure);
app.PhaseLabel.Position = [326 281 39 22];
app.PhaseLabel.Text = ‘Phase’;
% Create DimensionPrpertyLabel
app.DimensionPrpertyLabel = uilabel(app.UIFigure);
app.DimensionPrpertyLabel.Position = [461 276 104 22];
app.DimensionPrpertyLabel.Text = ‘Dimension/Prperty’;
% Create EditField2
app.EditField2 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2.ValueChangedFcn = createCallbackFcn(app, @EditField2ValueChanged, true);
app.EditField2.Position = [461 242 100 22];
app.EditField2.Value = 0.2;
% Create EditField3
app.EditField3 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3.Position = [321 243 100 22];
app.EditField3.Value = 140;
% Create EditField3_2
app.EditField3_2 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3_2.Position = [320.997694832939 203.000512259345 100 22];
app.EditField3_2.Value = 130;
% Create EditField3_3
app.EditField3_3 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3_3.Position = [320.995929173063 161.393369402201 100 22];
% Create EditField2_2
app.EditField2_2 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2_2.Position = [461 203 100 22];
app.EditField2_2.Value = 1.5;
% Create EditField2_3
app.EditField2_3 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2_3.Position = [461 163 100 22];
app.EditField2_3.Value = 2.5;
% Create EditField3_4
app.EditField3_4 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3_4.Position = [321 123 100 22];
app.EditField3_4.Value = -150;
% Create EditField2_4
app.EditField2_4 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2_4.Position = [460.107943943571 122.820894513809 100 22];
app.EditField2_4.Value = 3.5;
% Create EditField2_5
app.EditField2_5 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2_5.Position = [461 83 100 22];
app.EditField2_5.Value = 4.5;
% Create EditField3_5
app.EditField3_5 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3_5.Position = [320.997989109585 81.5705348423533 100 22];
app.EditField3_5.Value = -175;
% Show the figure after all components are created
app.UIFigure.Visible = ‘on’;
end
end
% App creation and deletion
methods (Access = public)
% Construct app
function app = app1
% Create UIFigure and components
createComponents(app)
% Register the app with App Designer
registerApp(app, app.UIFigure)
if nargout == 0
clear app
end
end
% Code that executes before app deletion
function delete(app)
% Delete UIFigure when app is deleted
delete(app.UIFigure)
end
end
end classdef app1 < matlab.apps.AppBase
% Properties that correspond to app components
properties (Access = public)
UIFigure matlab.ui.Figure
Toolbar matlab.ui.container.Toolbar
PushTool matlab.ui.container.toolbar.PushTool
EditField3_5 matlab.ui.control.NumericEditField
EditField2_5 matlab.ui.control.NumericEditField
EditField2_4 matlab.ui.control.NumericEditField
EditField3_4 matlab.ui.control.NumericEditField
EditField2_3 matlab.ui.control.NumericEditField
EditField2_2 matlab.ui.control.NumericEditField
EditField3_3 matlab.ui.control.NumericEditField
EditField3_2 matlab.ui.control.NumericEditField
EditField3 matlab.ui.control.NumericEditField
EditField2 matlab.ui.control.NumericEditField
DimensionPrpertyLabel matlab.ui.control.Label
PhaseLabel matlab.ui.control.Label
ElementDataLabel matlab.ui.control.Label
DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel matlab.ui.control.Label
CSTButton matlab.ui.control.Button
PreviewButton matlab.ui.control.Button
PhaseReference matlab.ui.control.NumericEditField
PhaseReferenceEditFieldLabel matlab.ui.control.Label
UnitElementDimensionsLabel matlab.ui.control.Label
Y matlab.ui.control.NumericEditField
YEditFieldLabel matlab.ui.control.Label
X matlab.ui.control.NumericEditField
XEditFieldLabel matlab.ui.control.Label
BeamDirectionLabel matlab.ui.control.Label
Azimuth matlab.ui.control.NumericEditField
AzimuthEditFieldLabel matlab.ui.control.Label
Elevation matlab.ui.control.NumericEditField
ElevationEditFieldLabel matlab.ui.control.Label
PhaseCenterCoordinates matlab.ui.control.Label
z matlab.ui.control.NumericEditField
zEditFieldLabel matlab.ui.control.Label
y matlab.ui.control.NumericEditField
yEditFieldLabel matlab.ui.control.Label
x matlab.ui.control.NumericEditField
xEditFieldLabel matlab.ui.control.Label
Image matlab.ui.control.Image
Frequency matlab.ui.control.NumericEditField
FrequencyEditFieldLabel matlab.ui.control.Label
Antennaradius matlab.ui.control.NumericEditField
AntennaradiusEditFieldLabel matlab.ui.control.Label
DesignareflectarrayLabel matlab.ui.control.Label
UIAxes matlab.ui.control.UIAxes
end
% Callbacks that handle component events
methods (Access = private)
% Button pushed function: CSTButton
function CSTButtonPushed(app, event)
% — Executes on button press in pushbutton2.
% Create GUIDE-style callback args – Added by Migration Tool
[hObject, eventdata, handles] = convertToGUIDECallbackArguments(app, event); %#ok<ASGLU>
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
handles = guidata(hObject);
addpath(genpath(‘C:UsersseymurDesktopcst-matlabCST-MATLAB-API-master’));
cst = actxserver(‘CSTStudio.application’);
mws = cst.invoke(‘NewMWS’);
cst = actxserver(‘CSTStudio.Application’);
mws = cst.OpenFile(‘path_to_your_cst_file.cst’);
fmin=2.2;
fmax=2.6;
function CstDefineFrequencyRange(mws, startFreq, endFreq)
mws.invoke(‘FrequencyRange’, ‘Define’, startFreq, endFreq);
end
mws = cst.invoke(‘NewMWS’);
Xmin=’expanded open’;
Xmax=’expanded open’;
Ymin=’expanded open’;
Ymax=’expanded open’;
Zmin=’expanded open’;
Zmax=’expanded open’;
minfrequency = fmin;
function CstDefineOpenBoundary(mws, minfrequency, Xmin, Xmax, Ymin, Ymax, Zmin, Zmax)
% CstDefineOpenBoundary – Defines the open boundary in CST.
%
% Inputs:
% mws – CST Microwave Studio object
% minfrequency – Minimum frequency for the boundary
% Xmin, Xmax, Ymin, Ymax, Zmin, Zmax – Boundary limits in each direction
% Assuming CST’s boundary settings are being configured using invoke calls
invoke(mws, ‘Boundary’, ‘Define’, ‘Xmin’, Xmin);
invoke(mws, ‘Boundary’, ‘Define’, ‘Xmax’, Xmax);
invoke(mws, ‘Boundary’, ‘Define’, ‘Ymin’, Ymin);
invoke(mws, ‘Boundary’, ‘Define’, ‘Ymax’, Ymax);
invoke(mws, ‘Boundary’, ‘Define’, ‘Zmin’, Zmin);
invoke(mws, ‘Boundary’, ‘Define’, ‘Zmax’, Zmax);
% Set minimum frequency (this part may vary depending on how CST handles this)
invoke(mws, ‘Solver’, ‘FrequencyRange’, minfrequency);
end
freq = app.Frequency.Value * 10^9;
lambda = physconst(‘LightSpeed’)*1000/freq;
k=2*pi/lambda;
ix=1;
iy=1;
data=handles.data;
phas_u=data(:,1)’;
dim_u=data(:,2)’;
the_dir = app.Elevation.Value;
phi_dir = app.Azimuth.Value;
pha_zer = app.PhaseReference.Value;
x_cor = app.x.Value;
y_cor = app.y.Value;
z_cor = app.z.Value;
rad = app.Antennaradius.Value;
uedimx = app.X.Value;
uedimy = app.Y.Value;
for xi=-rad/2+mod(rad/2,uedimx):uedimx:rad/2
for yi=-rad/2+mod(rad/2,uedimy):uedimy:rad/2
if sqrt(xi^2+yi^2)<rad/2
R = sqrt((x_cor-xi)^2+(y_cor-yi)^2+z_cor^2);
phase(ix,iy)=k*(R-sind(the_dir)*(xi*cosd(phi_dir)+yi*sind(phi_dir)))+pha_zer;
m_phase=mod(phase(ix,iy),2*pi);
m_phase_deg=m_phase*180/pi-180;
% phas_lin_map=m_phase_deg*m+n;
if m_phase_deg > phas_u(1,1)
phas_lin_map = phas_u(1,1);
elseif m_phase_deg < phas_u(1,end)
phas_lin_map = phas_u(end,1);
else
dy = diff([0 phas_u]);
dyix = find(dy == 0);
dim_u(dyix) = dim_u(dyix-1)+1E-8;
phas_lin_map = interp1(phas_u, dim_u, m_phase_deg);
end
else
phase(ix,iy)=0;
end
iy=iy+1;
end
ix=ix+1;
iy=1;
end
m_phase=mod(phase,2*pi);
m_phase_deg=m_phase*180/pi;
m_phase_deg(:);
surf(app.UIAxes, m_phase_deg);
view(app.UIAxes, 2);
surf(m_phase_deg)
view(2)
guidata(hObject, handles);
end
% Value changed function: Antennaradius, Frequency
function AntennaradiusEditFieldValueChanged(app, event)
value = app.Antennaradius.Value;
end
% Button pushed function: PreviewButton
function PreviewButtonPushed(app, event)
% Button pushed function: PreviewButton
function PreviewButtonPushed(app, event)
% Create GUIDE-style callback args – Added by Migration Tool
[hObject, eventdata, handles] = convertToGUIDECallbackArguments(app, event); %#ok<ASGLU>
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved – to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
handles = guidata(hObject);
% Frequency
freq = app.Frequency.Value * 10^9;
lambda = physconst(‘LightSpeed’) * 1000 / freq;
k = 2 * pi / lambda;
ix = 1;
iy = 1;
% Sample data (Replace with actual data assignment)
data = [140 0.2; 130 1.5; 0 2.5; -150 3.5; -175 4.5];
phas_u = data(:,1)’;
dim_u = data(:,2)’;
the_dir = app.Elevation.Value;
phi_dir = app.Azimuth.Value;
pha_zer = app.PhaseReference.Value;
x_cor = app.x.Value;
y_cor = app.y.Value;
z_cor = app.z.Value;
rad = app.Antennaradius.Value;
uedimx = app.X.Value;
uedimy = app.Y.Value;
% Initialize phase array
phase = zeros(round(rad/uedimx), round(rad/uedimy));
for xi = -rad/2+mod(rad/2,uedimx):uedimx:rad/2
for yi = -rad/2+mod(rad/2,uedimy):uedimy:rad/2
if sqrt(xi^2+yi^2) < rad/2
R = sqrt((x_cor-xi)^2 + (y_cor-yi)^2 + z_cor^2);
phase(ix, iy) = k * (R – sind(the_dir) * (xi * cosd(phi_dir) + yi * sind(phi_dir))) + pha_zer;
m_phase = mod(phase(ix, iy), 2*pi);
m_phase_deg = m_phase * 180 / pi – 180;
if m_phase_deg > phas_u(1,1)
phas_lin_map = phas_u(1,1);
elseif m_phase_deg < phas_u(1,end)
phas_lin_map = phas_u(end,1);
else
dy = diff([0 phas_u]);
dyix = find(dy == 0);
dim_u(dyix) = dim_u(dyix-1) + 1E-8;
phas_lin_map = interp1(phas_u, dim_u, m_phase_deg);
end
else
phase(ix, iy) = 0;
end
iy = iy + 1;
end
ix = ix + 1;
iy = 1;
end
% Convert to degrees
m_phase = mod(phase, 2*pi);
m_phase_deg = m_phase * 180 / pi;
% Debugging
disp(‘Phase (degrees):’);
disp(m_phase_deg);
% Plotting
surf(app.UIAxes, m_phase_deg);
view(app.UIAxes, 2);
guidata(hObject, handles);
end
end
% Close request function: UIFigure
function UIFigureCloseRequest(app, event)
delete(app)
end
% Value changed function: EditField2
function EditField2ValueChanged(app, event)
value = app.EditField2.Value;
end
end
% Component initialization
methods (Access = private)
% Create UIFigure and components
function createComponents(app)
% Get the file path for locating images
pathToMLAPP = fileparts(mfilename(‘fullpath’));
% Create UIFigure and hide until all components are created
app.UIFigure = uifigure(‘Visible’, ‘off’);
app.UIFigure.Color = [0.502 0.502 0.502];
app.UIFigure.Position = [100 100 984 624];
app.UIFigure.Name = ‘MATLAB App’;
app.UIFigure.CloseRequestFcn = createCallbackFcn(app, @UIFigureCloseRequest, true);
% Create Toolbar
app.Toolbar = uitoolbar(app.UIFigure);
% Create PushTool
app.PushTool = uipushtool(app.Toolbar);
app.PushTool.Icon = fullfile(pathToMLAPP, ‘images.png’);
% Create UIAxes
app.UIAxes = uiaxes(app.UIFigure);
app.UIAxes.XColor = [0 0 0];
app.UIAxes.Position = [602 321 329 262];
% Create DesignareflectarrayLabel
app.DesignareflectarrayLabel = uilabel(app.UIFigure);
app.DesignareflectarrayLabel.FontSize = 24;
app.DesignareflectarrayLabel.FontWeight = ‘bold’;
app.DesignareflectarrayLabel.Position = [363 593 261 32];
app.DesignareflectarrayLabel.Text = ‘Design a reflectarray ‘;
% Create AntennaradiusEditFieldLabel
app.AntennaradiusEditFieldLabel = uilabel(app.UIFigure);
app.AntennaradiusEditFieldLabel.HorizontalAlignment = ‘center’;
app.AntennaradiusEditFieldLabel.Position = [22 553 53 30];
app.AntennaradiusEditFieldLabel.Text = {‘Antenna ‘; ‘radius’};
% Create Antennaradius
app.Antennaradius = uieditfield(app.UIFigure, ‘numeric’);
app.Antennaradius.ValueChangedFcn = createCallbackFcn(app, @AntennaradiusEditFieldValueChanged, true);
app.Antennaradius.Position = [90 561 100 22];
% Create FrequencyEditFieldLabel
app.FrequencyEditFieldLabel = uilabel(app.UIFigure);
app.FrequencyEditFieldLabel.HorizontalAlignment = ‘right’;
app.FrequencyEditFieldLabel.Position = [10 522 65 22];
app.FrequencyEditFieldLabel.Text = ‘Frequency ‘;
% Create Frequency
app.Frequency = uieditfield(app.UIFigure, ‘numeric’);
app.Frequency.RoundFractionalValues = ‘on’;
app.Frequency.ValueChangedFcn = createCallbackFcn(app, @AntennaradiusEditFieldValueChanged, true);
app.Frequency.Position = [90 522 100 22];
% Create Image
app.Image = uiimage(app.UIFigure);
app.Image.Position = [231 345 370 219];
app.Image.ImageSource = fullfile(pathToMLAPP, ‘images.png’);
% Create xEditFieldLabel
app.xEditFieldLabel = uilabel(app.UIFigure);
app.xEditFieldLabel.HorizontalAlignment = ‘right’;
app.xEditFieldLabel.Position = [30 447 25 22];
app.xEditFieldLabel.Text = ‘x’;
% Create x
app.x = uieditfield(app.UIFigure, ‘numeric’);
app.x.Position = [70 447 100 22];
% Create yEditFieldLabel
app.yEditFieldLabel = uilabel(app.UIFigure);
app.yEditFieldLabel.HorizontalAlignment = ‘right’;
app.yEditFieldLabel.Position = [30 402 25 22];
app.yEditFieldLabel.Text = ‘y’;
% Create y
app.y = uieditfield(app.UIFigure, ‘numeric’);
app.y.Position = [70 402 100 22];
% Create zEditFieldLabel
app.zEditFieldLabel = uilabel(app.UIFigure);
app.zEditFieldLabel.HorizontalAlignment = ‘right’;
app.zEditFieldLabel.Position = [30 360 25 22];
app.zEditFieldLabel.Text = ‘z’;
% Create z
app.z = uieditfield(app.UIFigure, ‘numeric’);
app.z.Position = [70 360 100 22];
% Create PhaseCenterCoordinates
app.PhaseCenterCoordinates = uilabel(app.UIFigure);
app.PhaseCenterCoordinates.FontSize = 14;
app.PhaseCenterCoordinates.Position = [22 489 170 22];
app.PhaseCenterCoordinates.Text = ‘Phase Center Coordinates’;
% Create ElevationEditFieldLabel
app.ElevationEditFieldLabel = uilabel(app.UIFigure);
app.ElevationEditFieldLabel.HorizontalAlignment = ‘right’;
app.ElevationEditFieldLabel.Position = [15 285 54 22];
app.ElevationEditFieldLabel.Text = ‘Elevation’;
% Create Elevation
app.Elevation = uieditfield(app.UIFigure, ‘numeric’);
app.Elevation.Position = [84 285 64 22];
% Create AzimuthEditFieldLabel
app.AzimuthEditFieldLabel = uilabel(app.UIFigure);
app.AzimuthEditFieldLabel.HorizontalAlignment = ‘right’;
app.AzimuthEditFieldLabel.Position = [15 255 48 22];
app.AzimuthEditFieldLabel.Text = ‘Azimuth’;
% Create Azimuth
app.Azimuth = uieditfield(app.UIFigure, ‘numeric’);
app.Azimuth.Position = [84 255 64 22];
% Create BeamDirectionLabel
app.BeamDirectionLabel = uilabel(app.UIFigure);
app.BeamDirectionLabel.FontSize = 14;
app.BeamDirectionLabel.Position = [10 321 101 22];
app.BeamDirectionLabel.Text = ‘Beam Direction’;
% Create XEditFieldLabel
app.XEditFieldLabel = uilabel(app.UIFigure);
app.XEditFieldLabel.HorizontalAlignment = ‘right’;
app.XEditFieldLabel.Position = [31 174 25 22];
app.XEditFieldLabel.Text = ‘X’;
% Create X
app.X = uieditfield(app.UIFigure, ‘numeric’);
app.X.Position = [71 174 98 22];
% Create YEditFieldLabel
app.YEditFieldLabel = uilabel(app.UIFigure);
app.YEditFieldLabel.HorizontalAlignment = ‘right’;
app.YEditFieldLabel.Position = [29 126 25 22];
app.YEditFieldLabel.Text = ‘Y’;
% Create Y
app.Y = uieditfield(app.UIFigure, ‘numeric’);
app.Y.Position = [69 126 100 22];
% Create UnitElementDimensionsLabel
app.UnitElementDimensionsLabel = uilabel(app.UIFigure);
app.UnitElementDimensionsLabel.FontSize = 14;
app.UnitElementDimensionsLabel.Position = [15 216 162 22];
app.UnitElementDimensionsLabel.Text = ‘Unit Element Dimensions’;
% Create PhaseReferenceEditFieldLabel
app.PhaseReferenceEditFieldLabel = uilabel(app.UIFigure);
app.PhaseReferenceEditFieldLabel.HorizontalAlignment = ‘right’;
app.PhaseReferenceEditFieldLabel.Position = [9 83 98 22];
app.PhaseReferenceEditFieldLabel.Text = ‘Phase Reference’;
% Create PhaseReference
app.PhaseReference = uieditfield(app.UIFigure, ‘numeric’);
app.PhaseReference.Position = [130 83 58 22];
% Create PreviewButton
app.PreviewButton = uibutton(app.UIFigure, ‘push’);
app.PreviewButton.ButtonPushedFcn = createCallbackFcn(app, @PreviewButtonPushed, true);
app.PreviewButton.FontSize = 14;
app.PreviewButton.Position = [731 250 110 25];
app.PreviewButton.Text = ‘Preview’;
% Create CSTButton
app.CSTButton = uibutton(app.UIFigure, ‘push’);
app.CSTButton.ButtonPushedFcn = createCallbackFcn(app, @CSTButtonPushed, true);
app.CSTButton.FontSize = 14;
app.CSTButton.Position = [731 160 110 25];
app.CSTButton.Text = ‘ CST’;
% Create DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel = uilabel(app.UIFigure);
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel.BackgroundColor = [0.651 0.651 0.651];
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel.FontSize = 14;
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel.Position = [661 39 260 76];
app.DesigenerEngAbdullahSabahIbrahimuabd704gmailcomLabel.Text = {‘Desigener Eng .Abdullah Sabah Ibrahim’; ‘Air Navigation Engineer’; ‘uabd704@gmail.com’};
% Create ElementDataLabel
app.ElementDataLabel = uilabel(app.UIFigure);
app.ElementDataLabel.BackgroundColor = [0.502 0.502 0.502];
app.ElementDataLabel.FontSize = 14;
app.ElementDataLabel.Position = [320 310 142 27];
app.ElementDataLabel.Text = ‘Element Data’;
% Create PhaseLabel
app.PhaseLabel = uilabel(app.UIFigure);
app.PhaseLabel.Position = [326 281 39 22];
app.PhaseLabel.Text = ‘Phase’;
% Create DimensionPrpertyLabel
app.DimensionPrpertyLabel = uilabel(app.UIFigure);
app.DimensionPrpertyLabel.Position = [461 276 104 22];
app.DimensionPrpertyLabel.Text = ‘Dimension/Prperty’;
% Create EditField2
app.EditField2 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2.ValueChangedFcn = createCallbackFcn(app, @EditField2ValueChanged, true);
app.EditField2.Position = [461 242 100 22];
app.EditField2.Value = 0.2;
% Create EditField3
app.EditField3 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3.Position = [321 243 100 22];
app.EditField3.Value = 140;
% Create EditField3_2
app.EditField3_2 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3_2.Position = [320.997694832939 203.000512259345 100 22];
app.EditField3_2.Value = 130;
% Create EditField3_3
app.EditField3_3 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3_3.Position = [320.995929173063 161.393369402201 100 22];
% Create EditField2_2
app.EditField2_2 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2_2.Position = [461 203 100 22];
app.EditField2_2.Value = 1.5;
% Create EditField2_3
app.EditField2_3 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2_3.Position = [461 163 100 22];
app.EditField2_3.Value = 2.5;
% Create EditField3_4
app.EditField3_4 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3_4.Position = [321 123 100 22];
app.EditField3_4.Value = -150;
% Create EditField2_4
app.EditField2_4 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2_4.Position = [460.107943943571 122.820894513809 100 22];
app.EditField2_4.Value = 3.5;
% Create EditField2_5
app.EditField2_5 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField2_5.Position = [461 83 100 22];
app.EditField2_5.Value = 4.5;
% Create EditField3_5
app.EditField3_5 = uieditfield(app.UIFigure, ‘numeric’);
app.EditField3_5.Position = [320.997989109585 81.5705348423533 100 22];
app.EditField3_5.Value = -175;
% Show the figure after all components are created
app.UIFigure.Visible = ‘on’;
end
end
% App creation and deletion
methods (Access = public)
% Construct app
function app = app1
% Create UIFigure and components
createComponents(app)
% Register the app with App Designer
registerApp(app, app.UIFigure)
if nargout == 0
clear app
end
end
% Code that executes before app deletion
function delete(app)
% Delete UIFigure when app is deleted
delete(app.UIFigure)
end
end
end app designer MATLAB Answers — New Questions
hi, find the value of x theoretically?
find the value of x?
((log(1-exp(-x/s)^(n))-log(1-a^(1-exp(-x/s)^(n))))/(1-a))=1/2find the value of x?
((log(1-exp(-x/s)^(n))-log(1-a^(1-exp(-x/s)^(n))))/(1-a))=1/2 find the value of x?
((log(1-exp(-x/s)^(n))-log(1-a^(1-exp(-x/s)^(n))))/(1-a))=1/2 exp, alpha MATLAB Answers — New Questions
Facing problem during simulation on gazebo.
Hi I am trying to simulate this problem https://www.mathworks.com/matlabcentral/fileexchange/64381-matlab-and-simulink-robotics-arena-simulating-quadcopter-missions I have tried virtual box then VMware and after that I have download the files from this link https://www.mathworks.com/support/product/robotics/ros2-vm-installation-instructions-v5.html now the problem I am facing in all these cases is same when I run my simulation in gazebo I am facing errors in importing drone into the world loaded in my scenario. I have already connected simulink with ROS and works fine but my errors come in linux terminal.
Note: I have already followed steps according to documentation provided and tried videos too available on youtube and matlab platform. I have tried diffrent versions of ROS including latest version also ( ROS Noetic Humble Gazebo 11 and ROS Melodic Dashing Gazebov9 ) in a hope maybe old version might help me out in this problem but the error is consistent no matter what I try.
The Error I am facing are of the sort:
qws.urdf file is empty.
[INFO] [1723726120.533970, 0.000000]: Calling service /gazebo/spawn_urdf_model Service call failed: service [/gazebo/spawn_urdf_model] responded with an error: [ERROR] [1723726120.622680, 65.204000]: Spawn service failed. Exiting.
xacro: in-order processing became default in ROS Melodic. You can drop the option. resource not found: imav_2017 ROS path [0]=/opt/ros/melodic/share/ros ROS path [1]=/opt/ros/melodic/share when processing file: quadrotor.urdf.xacro [INFO] [1723726204.610146, 0.000000]: Loading model XML from file qws.urdf [ERROR] [1723726204.611562, 0.000000]: Error: file qws.urdf is emptyHi I am trying to simulate this problem https://www.mathworks.com/matlabcentral/fileexchange/64381-matlab-and-simulink-robotics-arena-simulating-quadcopter-missions I have tried virtual box then VMware and after that I have download the files from this link https://www.mathworks.com/support/product/robotics/ros2-vm-installation-instructions-v5.html now the problem I am facing in all these cases is same when I run my simulation in gazebo I am facing errors in importing drone into the world loaded in my scenario. I have already connected simulink with ROS and works fine but my errors come in linux terminal.
Note: I have already followed steps according to documentation provided and tried videos too available on youtube and matlab platform. I have tried diffrent versions of ROS including latest version also ( ROS Noetic Humble Gazebo 11 and ROS Melodic Dashing Gazebov9 ) in a hope maybe old version might help me out in this problem but the error is consistent no matter what I try.
The Error I am facing are of the sort:
qws.urdf file is empty.
[INFO] [1723726120.533970, 0.000000]: Calling service /gazebo/spawn_urdf_model Service call failed: service [/gazebo/spawn_urdf_model] responded with an error: [ERROR] [1723726120.622680, 65.204000]: Spawn service failed. Exiting.
xacro: in-order processing became default in ROS Melodic. You can drop the option. resource not found: imav_2017 ROS path [0]=/opt/ros/melodic/share/ros ROS path [1]=/opt/ros/melodic/share when processing file: quadrotor.urdf.xacro [INFO] [1723726204.610146, 0.000000]: Loading model XML from file qws.urdf [ERROR] [1723726204.611562, 0.000000]: Error: file qws.urdf is empty Hi I am trying to simulate this problem https://www.mathworks.com/matlabcentral/fileexchange/64381-matlab-and-simulink-robotics-arena-simulating-quadcopter-missions I have tried virtual box then VMware and after that I have download the files from this link https://www.mathworks.com/support/product/robotics/ros2-vm-installation-instructions-v5.html now the problem I am facing in all these cases is same when I run my simulation in gazebo I am facing errors in importing drone into the world loaded in my scenario. I have already connected simulink with ROS and works fine but my errors come in linux terminal.
Note: I have already followed steps according to documentation provided and tried videos too available on youtube and matlab platform. I have tried diffrent versions of ROS including latest version also ( ROS Noetic Humble Gazebo 11 and ROS Melodic Dashing Gazebov9 ) in a hope maybe old version might help me out in this problem but the error is consistent no matter what I try.
The Error I am facing are of the sort:
qws.urdf file is empty.
[INFO] [1723726120.533970, 0.000000]: Calling service /gazebo/spawn_urdf_model Service call failed: service [/gazebo/spawn_urdf_model] responded with an error: [ERROR] [1723726120.622680, 65.204000]: Spawn service failed. Exiting.
xacro: in-order processing became default in ROS Melodic. You can drop the option. resource not found: imav_2017 ROS path [0]=/opt/ros/melodic/share/ros ROS path [1]=/opt/ros/melodic/share when processing file: quadrotor.urdf.xacro [INFO] [1723726204.610146, 0.000000]: Loading model XML from file qws.urdf [ERROR] [1723726204.611562, 0.000000]: Error: file qws.urdf is empty gazebo, uav simulation, ros, linux, ubuntu, robotics arena quadcopter missions MATLAB Answers — New Questions
How to find customers visiting other shops for the same product in my shop within 14 days
I have data showing the following columns: Customer Name, Date of Visit, Shop (my shop, other shops), Product, Price.
I need to find the customers visiting other shops for the same product in my shop within 14 days.
I tried doing a simple IF(AND,… formula but it doesn’t catch customers who’s jumping from my shop to another and back for various products within a month.
I have data showing the following columns: Customer Name, Date of Visit, Shop (my shop, other shops), Product, Price. I need to find the customers visiting other shops for the same product in my shop within 14 days. I tried doing a simple IF(AND,… formula but it doesn’t catch customers who’s jumping from my shop to another and back for various products within a month. Read More
How to sell our products.
How to sell our products.
My company BSD, in Vietnam.
We have some products developed on Power App, Dataverse, Sharepoint, Power BI.
Could you please help me:
We want to sell these products first to the Vietnamese market.How can we sell our products? How can we put our products on https://appsource.microsoft.com/
Thanks in advance
Truong Dai
How to sell our products.My company BSD, in Vietnam.We have some products developed on Power App, Dataverse, Sharepoint, Power BI.Could you please help me:We want to sell these products first to the Vietnamese market.How can we sell our products? How can we put our products on https://appsource.microsoft.com/Thanks in advance Truong Dai Read More
Customizing the PftW Accelerator
I love the Project for the Web Accelerator! However, I would like to modify something. I would like to add another tab to the Project level view for “Action Items” to go along side of the “Summary, Business case, Risks, Issues, Changes, and Status” options (see image).
How would I do this?
I love the Project for the Web Accelerator! However, I would like to modify something. I would like to add another tab to the Project level view for “Action Items” to go along side of the “Summary, Business case, Risks, Issues, Changes, and Status” options (see image). How would I do this? Read More
Where is the Info Tab on Microsoft Excel 2019 for Mac?
Hi, I am looking for the “INFO” tab on Microsoft Excel 2019 for Mac. Although it seems that you can quickly locate this panel on the Windows version, I am having some difficulty locating it on the Mac version. Does it exist on the Mac version?
Furthermore, how do you “check for issues” on Microsoft Excel 2019 for Mac? Specifically, how do you “inspect the document” and “check compatibility” for accessibility/disabled persons? Please note that these features are included through the “INFO” tab on Microsoft Excel for Windows; however, I am having major trouble locating these features on my Mac version.
Steps I’ve attempted to locate this “Info” tab on Microsoft Excel for Mac-
Windows Version Screen (This is what Im looking for):
Thank you so much for your help!!
Hi, I am looking for the “INFO” tab on Microsoft Excel 2019 for Mac. Although it seems that you can quickly locate this panel on the Windows version, I am having some difficulty locating it on the Mac version. Does it exist on the Mac version? Furthermore, how do you “check for issues” on Microsoft Excel 2019 for Mac? Specifically, how do you “inspect the document” and “check compatibility” for accessibility/disabled persons? Please note that these features are included through the “INFO” tab on Microsoft Excel for Windows; however, I am having major trouble locating these features on my Mac version. Steps I’ve attempted to locate this “Info” tab on Microsoft Excel for Mac- Windows Version Screen (This is what Im looking for):Thank you so much for your help!! Read More
Intune / MDE device control policy audit events
I find that this feature is inconsistent on outputting the audit events to advanced hunting. I have not had an issue making the policies block devices including allowing specific ones, however it seems to be finicky on when it will output the RemovableStoragePolicyTriggered events. If I reboot the device it seems to emit the audit events briefly. The Windows Toast notifications are also inconsistent, but I suspect that is due to some function of Windows that limits the number of notifications that can occur.
Is there some trick to make the audit events show up in advanced hunting consistently?
My configuration is targeting USB/WPD/CDROM each one denying “File Write/File Execute” with an audit allowed + audit denied for everything but print.
I tried explicitly “allowing” read/write/execute/fileread but it had no effect other than changing the policy label from “DefaultAllow” to the policy name when it did happen to emit a RemovableStoragePolicyTriggered event. I “clean” the registry keys associated with the policies prior to testing to get rid of duplicate data from policy updates.
HKLM:SOFTWAREPoliciesMicrosoftWindows DefenderPolicy Manager (PolicyRules/PolicyGroups)
I find that this feature is inconsistent on outputting the audit events to advanced hunting. I have not had an issue making the policies block devices including allowing specific ones, however it seems to be finicky on when it will output the RemovableStoragePolicyTriggered events. If I reboot the device it seems to emit the audit events briefly. The Windows Toast notifications are also inconsistent, but I suspect that is due to some function of Windows that limits the number of notifications that can occur. Is there some trick to make the audit events show up in advanced hunting consistently? My configuration is targeting USB/WPD/CDROM each one denying “File Write/File Execute” with an audit allowed + audit denied for everything but print. I tried explicitly “allowing” read/write/execute/fileread but it had no effect other than changing the policy label from “DefaultAllow” to the policy name when it did happen to emit a RemovableStoragePolicyTriggered event. I “clean” the registry keys associated with the policies prior to testing to get rid of duplicate data from policy updates. HKLM:SOFTWAREPoliciesMicrosoftWindows DefenderPolicy Manager (PolicyRules/PolicyGroups) Read More
Kindly help me write an expression in my MS ACCESS report
I have following fields in the report
‘Item quantity required per piece’ bound field- number field : Field name in the report is [QUANTITY REQUIRED]
‘unit’- text filed- bound field: (Unit can be ‘GM’-for gram,’KG’- Kilogram,’PCS’- Pieces,’ML’-Milli Liter,’LIT’- Liter)- field name in the report is [QUANTITY UNIT]
‘total production’: number field: bound field: field name in the report [Text45]
Total item required for the production : Unbound : Field name in the report is [Text371]
For field [Text371], i want to create an expression . If the product of [QUANTITY REQUIRE] and [Text45] is greater than 1000 and if the unit is ‘GM’ then i want [Text371]=[Text45]*[QUANITY RQUIRED]/1000 &” “&”KG”( basically i want to convert the result to Kilogram if it’s more than 1000), otherwise, the result should be [Text371]=[Text45]*[QUANTITY REQUIRED] & ” ” & [Units] (basically if the product is not more than 1000 and the unit is not gram , i want the result to be just the product and the respective unit ) . I wrote the expression something like below, but it didn’t work :(. Could someone please help
IFF [Text45]*[QUANITY RQUIRED]>1000 & [QUANTITY UNIT]=”GM”, [Text371]=[Text45]*[QUANITY RQUIRED]/1000 &” “&”KG”,[Text371]=[Text45]*[QUANTITY REQUIRED] & ” ” & [Units]
I have following fields in the report’Item quantity required per piece’ bound field- number field : Field name in the report is [QUANTITY REQUIRED]’unit’- text filed- bound field: (Unit can be ‘GM’-for gram,’KG’- Kilogram,’PCS’- Pieces,’ML’-Milli Liter,’LIT’- Liter)- field name in the report is [QUANTITY UNIT]’total production’: number field: bound field: field name in the report [Text45]Total item required for the production : Unbound : Field name in the report is [Text371]For field [Text371], i want to create an expression . If the product of [QUANTITY REQUIRE] and [Text45] is greater than 1000 and if the unit is ‘GM’ then i want [Text371]=[Text45]*[QUANITY RQUIRED]/1000 &” “&”KG”( basically i want to convert the result to Kilogram if it’s more than 1000), otherwise, the result should be [Text371]=[Text45]*[QUANTITY REQUIRED] & ” ” & [Units] (basically if the product is not more than 1000 and the unit is not gram , i want the result to be just the product and the respective unit ) . I wrote the expression something like below, but it didn’t work :(. Could someone please helpIFF [Text45]*[QUANITY RQUIRED]>1000 & [QUANTITY UNIT]=”GM”, [Text371]=[Text45]*[QUANITY RQUIRED]/1000 &” “&”KG”,[Text371]=[Text45]*[QUANTITY REQUIRED] & ” ” & [Units] Read More
PnP modern search displays a SharePoint list multiple choice column with ;#
I regularly use PnP Search to display SharePoint lists, but one issue I run into regularly is that the choice columns that allow multiple selections show with ;# after each option on the PnP Search Results web part. How can I stop this from happening? See below example:
I regularly use PnP Search to display SharePoint lists, but one issue I run into regularly is that the choice columns that allow multiple selections show with ;# after each option on the PnP Search Results web part. How can I stop this from happening? See below example: Read More
New on Microsoft AppSource: August 1-11, 2024
We continue to expand the Microsoft AppSource ecosystem. For this volume, 213 new offers successfully met the onboarding criteria and went live. See details of the new offers below:
Get it now in our marketplace
1Vision IoT: 1Vision365 IoT transfers IoT signals to Microsoft Dynamics 365 Business Central for further processing. Signals are stored in an IoT Event Hub table and can be subscribed to by a per-tenant-extension for data handling.
Acumens e-Mailing: Acumens e-Mailing for Dynamics 365 Business Central allows for efficient and targeted communication with customers through customizable email templates. It supports various functional areas such as sales orders, purchase orders, and service contracts. The extension is available in all countries where Business Central is available and supports the Essential and Premium editions.
HealthTalk Automated Medical Scribe: HealthTalk is an AI-powered solution that uses natural language processing and machine learning to transcribe spoken language into detailed, context-aware session notes for mental health professionals. It reduces documentation time, enhances operational efficiency, and improves patient care. The platform is user-friendly, accurate, and comprehensive, with features such as role detection, live translations, and care plan creation.
BaseLinker Integrator: BaseLinker is an e-commerce platform that integrates with other tools to manage online sales from one place. It includes a warehouse for creating a product database, monitoring inventory, and listing auctions on marketplace platforms. BaseLinker also allows for importing products into Dynamics 365 Business Central, automating product and sales order creation, and synchronizing inventory and price lists.
Celebrations Spotlight for SharePoint: Celebrations Spotlight for SharePoint is a web part that centralizes employee celebrations and offers customizable layouts, flexible data sources, advanced filtering, and extensive customization. It enhances corporate culture by facilitating easy recognition of employee milestones and empowers organizations to celebrate achievements effectively.
Church 365: Church 365 maximizes the value of Microsoft 365 and Microsoft Azure for churches. It enables team creation and management, assigns roles to volunteers, and offers capabilities such as email automation, member surveys, live streaming, digital signage, and public website creation. It helps church staff coordinate technology usage and extend it to the broader membership while reducing costs.
Cipher xMDR Platform and Services: Cipher provides early detection and response to threats through their cloud-based xMDR platform, which uses artificial intelligence to efficiently manage alerts and generate enriched investigations. The service offers customizable protection, talent management, and cost optimization. The platform generates a model of the digital adversary and focuses on in-depth investigations, robotized and assisted technology, and continuous threat hunting.
Circle Scheduler: Circle Scheduler is a time management tool that allows users to plan their schedules using a pie chart with seven color-coded segments. The schedules can be saved in an SQLite database.
Cognitive Solutions: Cognitive Solutions offers a platform for building AI assistants that can be customized by business specialists. The assistants are flexible and personalized, adapting to the user’s needs. The platform includes innovative tools for personalization and monitoring, as well as a self-improvement module and evaluation and monitoring modules.
Connected Operational Risk Management Application: Corizance is a connected risk intelligence platform for high-risk industries, offering features like risk assessment, monitoring, and management. It also provides solutions for cyber risk quantification, compliance, and fraud monitoring. The platform boasts benefits like revenue savings, operational efficiencies, and risk management efficiency.
Default to Tax Liable: The Default to Tax Liable app for Dynamics 365 Business Central automatically sets the tax liable field to “Yes” for new customers or ship-to addresses, simplifying tax handling for businesses where all customers are subject to tax. No manual setup is required, and the extension overrides previously created templates for uniformity and reduced errors.
Dimension Balancing: This extension helps prevent out-of-balance posting for General Ledger dimensions in Dynamics 365 Business Central. It allows for granular control over setup and override ability and can be used for any dimension. The functionality also allows for selective balancing requirements and controlling what combination of document header versus document line dimensions are allowed to differ.
Dumbbell Column Chart Pro: PBIVizEdit offers a suite of customizable visuals for Microsoft Power BI, including small multiples, analytics pane, and custom sorting. The visuals can be embedded in SharePoint and internal applications with a per-user license. PBIVizEdit has a GUI editor for further customization and has been used by over 10,000 companies globally.
Easy Poll Pro: Easy Poll is a Microsoft Teams app that allows you to create and manage polls for your team. It offers instant poll creation, drafts for later, reusable polls, organized overview, and no account requirement.
Enterprise Compliance Management Application for AMCs and Wealth Managers: Corizance’s AI-powered risk and compliance management platform helps AMCs and wealth management companies comply with non-fund related regulatory requirements. It offers real-time monitoring, risk mitigation, and comprehensive compliance tools. The platform ensures full compliance with RBI operational risk management requirements and provides a user-friendly interface for easy navigation.
inFlow for Retail: inFlow for Retail uses AI to personalize shopping, streamline e-commerce, expedite payments, optimize logistics, and strengthen customer support. It offers a robust dashboard for managerial control and transparency.
Intenseye: Intenseye’s computer vision AI platform empowers EHS leaders to reduce work-related injuries and illnesses, automate workflows, and improve compliance. It continuously monitors for unsafe acts and conditions, assesses and mitigates workplace hazards, and digitizes EHS workflows. The platform transforms safety into a business advantage by improving operational efficiency and driving a positive culture.
KMS – Kreate Content Management System: KMS is a content creation and management platform that combines human input and AI to help users create, manage, generate, and optimize content. It offers an intuitive interface for creating content for CMS and managing content assets stored in various file formats across cloud buckets.
Length Tally: The Length Tally app for Dynamics 365 Business Central calculates total quantity of an item based on multiple lengths and quantities during a sale. It prompts a page for input and generates comment lines for each length tally, providing clear and detailed records.
Live Application Design: Live Application Design service allows creation of detailed prototypes in real time, reducing risk and time in implementing technology. Intended for technology and management analysts/consultants, it teaches designing live, interactive solutions, creating valuable BRD documentation, and supporting business cases, feasibility studies, and system modeling.
HaloSOS Location-based Platform for Safety and Operational Efficiencies: HaloSOS enhances personal safety and manages mass crisis events for staff and operators of large indoor and outdoor campuses and resorts. Accurate location updates and rapid notification delivery ensure swift communication with response teams. The platform also offers operational multilingual communications and secure access. HaloSOS is committed to delivering innovative solutions that improve safety and operational efficiency in public buildings.
Move the Chain Engage: Move the Chain is an employee engagement platform that fosters connections among teammates and builds a sense of community within parent companies and at local levels. It integrates directly with Microsoft Teams and offers features such as employee onboarding, social intranet, recognition and gamification, community hub, event management, and corporate social responsibility.
Nextuple Capacity: Nextuple’s Capacity Management Service (NCM) integrates with existing systems to track and communicate capacity effectively. It accommodates new capacity types and allows AI and ML models to recommend capacity levels based on real-time data. NCM addresses use cases such as warehouse operations, transportation, customer receiving, service, and manufacturing. It provides real-time monitoring capabilities, informs promises with precision, and handles high data volumes seamlessly.
OptiAI – Intelligent Project Management Suite: OptiAI is an AI-powered project management tool that integrates with existing tools like Microsoft Project, Jira, and Trello. It uses Azure AI services to predict project timelines, analyze project data, and automate document processing. OptiAI also offers intelligent chatbots, automated workflows, and collaboration tools to enhance team communication and efficiency.
Paper Polisher for PowerPoint: Paper Polisher is an AI-based writing assistant that refines content by using collegiate vocabulary substitutions, professional grammar conventions, and proper punctuation. It is a Microsoft 365 add-in available for Word, Outlook, and PowerPoint that saves time and effort by turning brief passages into pages, transforming memos into messages, and making slides out of sentences with a single click.
Passgage – Employee Super App: Passgage is an all-in-one HR management solution that simplifies and streamlines HR processes. It offers time and attendance tracking, employee engagement tools, expense management, performance tracking, and internal communication features. Passgage consolidates all digital tools into one platform, providing a seamless experience that adapts to digital transformation.
Production Sequencing: The Production Sequencing app simplifies the production process by arranging orders based on start date, time, production order number, or custom sequence codes. It offers easy setup, flexible scheduling, visual aids, and custom adjustments. The app is available in Canada, New Zealand, the United Kingdom, and the United States, and supports English, French, and Spanish.
Relate: Relate is a meeting enablement platform that objectively measures trust using Sandi, a generative AI coach. It integrates with existing client-facing tools and CRM software and can be configured to comply with specific requirements. Relate offers detailed data to track team performance, coaching and monitoring to support trust-building behaviors, and removes the human element from coaching conversations.
Serial and Lot Number Prompt: The Serial Lot and Number Prompt app for Dynamics 365 Business Central improves item tracking by displaying tracking lines for serial numbers after an item is added. It works with various document types and adds useful columns to the item tracking entries page.
ShipIntel: ShipIntel is an AI-driven maritime AIS toolbox that combines machine learning algorithms and generative AI technology with a company’s data to provide valuable insights for informed decisions. It offers live search and position lists, sea route calculator, live port and area monitoring, historical AIS tracking, predictive vessel destination, and customizable private maps. ShipIntel Pre-Fix includes maritime email tracking, AI-driven cargo handling, and pre-voyage calculations.
Tangra AI Image Generator: Tangra AI Image Generator offers stunning photorealistic visuals with various preset styles, AI-generated prompts, and templates. It provides creative freedom with landscape, portrait, and square modes and the ability to generate similar and multiple images.
Time and Attendance: Time and Attendance is a Dynamics 365 Business Central employee time clock for tracking attendance and payroll data. It allows punch-in and punch-out on multiple pages and roles, including LS retail POS. Reports show total hours worked per employee per day and are exportable.
Unifii360 Advance Backorder Management: Unifii360 Advance Backorder Management for Dynamics 365 Business Central streamlines backorder management, enhances order fulfillment, and reduces delays. Key features include automatic tracking, customizable notifications, and detailed reporting.
Unifii360 EDI Integration: Unifii360 EDI Integration for Dynamics 365 Business Central streamlines EDI integration for managing back orders on sales orders. It improves communication with trading partners, reduces manual data entry, and ensures efficient order processing. Key features include automatic EDI document generation, real-time data synchronization, and comprehensive reporting.
Unifii360 Tasklet: Unifii360 Tasklet add-on for Tasklet Mobile WMS and Dynamics 365 Business Central optimizes warehouse management processes with advanced functionalities and automation features. It seamlessly integrates with Business Central, allowing customization to fit specific warehouse management needs and improve overall productivity. Key features include breakbulk, auto post put away, auto post WS on pick, auto print shipment, auto email invoice, auto print invoice, and combine invoice.
Unit of Measure Prompt: The Unit of Measure Prompt app extension simplifies the sales process by allowing users to select the appropriate unit of measure for items with multiple units. It displays all available units with their respective quantities and prices, and the user selects the desired unit, which is then applied to the sales line.
VEMCRIS Operations System: VEMCRIS is a cloud-based platform for national regulatory agencies to ensure the safety and efficacy of veterinary medicines. It offers streamlined workflows, real-time tracking, product scrutiny and approval tools, secure data management, compliance and reporting, and user-friendly interface.
Vendor Insights: Vendor Insights helps monitor and evaluate vendor performance for timely and accurate deliveries. It allows defining thresholds for vendor performance and provides detailed insights. The app is available in Canada, New Zealand, the United Kingdom, and the United States in English, French, and Spanish.
Go further with workshops, proofs of concept, and implementations
Microsoft Entra Internet Access Implementation: Microsoft Entra Security Service Edge (SSE) provides ID-centered zero-trust network access, eliminating the risks and complexities of internet access and VPN. JBS offers three services: PoC support, environment setup, and migration support, tailored to your company’s needs. JBS has extensive experience in Microsoft products and specialized network engineers for optimal support. This offer is available in Japanese.
Microsoft Copilot Advanced Services: 1 Day, 3 Workshops: Get the most out of Microsoft Copilot with AI training services from Microsoft partner NESS. Tailored to your needs, the training covers security, GitHub, and Microsoft 365 applications. The flexible scheduling and post-training support make it easy to integrate AI into your workflow.
Copilot for Microsoft 365 Briefing: Learn about Copilot for Microsoft 365 and its value for different organization personas and use cases with applications like Word, Excel, PowerPoint, and more. NewTech’s engagement aims to increase productivity, reduce costs, and help you overcome the empty-page syndrome. The briefing is suitable for business directors and managers, including IT, HR, training staff, operations, development, and finance.
Copilot for Microsoft 365 Adoption Accelerator: 10-Week Engagement: The Copilot for Microsoft 365 Adoption Accelerator helps customers optimize their use of Microsoft 365. It includes activities such as deploying apps, mitigating device risk, and controlling the use of AI apps. adaQuest’s engagement also involves creating a Copilot Center of Excellence, an awareness strategy, a learning plan, and success measures.
Copilot for Microsoft 365 Adoption Guide: 2-Hour Briefing: adaQuest will help your organization fully utilize Copilot for Microsoft 365 AI capabilities to boost productivity and creativity. The training covers topics such as key features, data protection, and AI transformation.
Copilot for Microsoft 365: 1-Week Assessment: Available in Spanish, Nebulan’s analysis service evaluates your use Microsoft 365, identifying gaps for optimization. Tasks include reviewing licenses, updating Microsoft 365 apps, and evaluating readiness for Copilot for Microsoft 365. Deliverables include a deeper understanding of technical requirements, review of optimization results, and guidance for additional technical support.
Copilot for Microsoft 365 Rapid Deployment Program: Get your organization up and running with Copilot for Microsoft 365 in just 30 days with Cloud for Work’s adoption program. We offer workshops for end-users, executives, and AI champions, as well as a comprehensive awareness campaign. Our program includes a technology deployment review, permissions audit, remediation plan, and license assignment.
Microsoft Copilot Value Discovery: 3-Day Workshop: proMX offers the Copilot Value Discovery Engagement, a three-phase service to help organizations understand and implement AI-powered solutions. The workshop is ideal for senior business decision-makers, functional leaders, AI champions, and IT decision-makers. By the end of the workshop, participants will have a clear understanding of AI transformation benefits, prioritized high-value scenarios, and a comprehensive business case and implementation roadmap.
Dedalus Implementation and Adoption of Copilot for Microsoft 365: Dedalus’ implementation of Copilot for Microsoft 365 involves assessment, implementation, adoption, and support phases. The assessment phase identifies specific tasks that can be automated or streamlined using Copilot for Microsoft 365. Implementation covers data security, governance, risk, compliance, and data lifecycle management. Adoption includes workshops and support for implementing working groups.
Dynamics 365 Business Central Key User Service: Fellowmind’s Key User consultancy service offers a comprehensive program to improve Dynamics 365 Business Central system management. It includes assessment, maintenance process definition, training sessions, and workshops for reviewing development needs. The program covers basic features, reporting, and user permissions.
Dynamics 365 CRM OnTrack Virtual Coworker Membership for Existing CRM Users: Azamba’s OnTrack Virtual Coworker Membership offers a fixed-fee plan for small and medium-sized businesses to ensure successful CRM implementation. With personalized coaching, on-demand video training, pre-built CRM add-ons, and a structured methodology, OnTrack ensures full-scale adoption and business transformation.
Dynamics 365 Sales: 1-Day Discovery Session and Solution Blueprint: VFFICE Consulting Services offers tailored Dynamics 365 Sales solutions to streamline business processes, improve decision-making, and drive growth. They offer a one-day discovery workshop to analyze existing business processes and infrastructure, with a tailored Dynamics 365 Sales solution, implementation timeline, and process improvement recommendations as deliverables.
Endpoint Management: 1-Day Workshop: T-Systems’ Endpoint Management Workshop improves device security posture and provides insights into user compliance with IT policies. It utilizes Microsoft Endpoint Manager and Azure to build management policies that protect users, company data, and devices. The workshop helps manage both company-owned and user-chosen devices in the cloud, ensuring productivity without compromising IT security.
H One’s Streamlined Content Migration Service: H One offers efficient content migration services for Microsoft 365, and Google Drive. They also provide comprehensive SLA-backed support and optimization services for Microsoft 365 environments. Their streamlined processes ensure minimal disruption to operations, making them a trusted partner for seamless digital transformation.
Dynamics 365 Finance: 1-Hour Discovery Assessment: HSO offers a fully encompassing solution for organizations looking to modernize finance, manage complex supply chains, and deliver added value service to their customers. They guide and support businesses in defining requirements and implementing the right solution using their industry best practice Excellerate implementation methodology and the Microsoft Catalyst Framework.
Dynamics 365: 1-Hour Discovery Assessment: HSO is a Dynamics 365 partner that offers a fully encompassing solution for organizations looking to modernize sales, customer service, field service, and marketing. They guide and support businesses in defining requirements and implementing the right solution.
Copilot for Microsoft 365 Adoption Implementation: The Copilot for Microsoft 365 Adoption Accelerator helps organizations build a customized adoption plan with prioritized use cases and a training schedule. It also assists in building a team for readiness, technical enablement, and pilot users. Aegis Innovators’ accelerator aims to facilitate successful deployment and adoption of Copilot for Microsoft 365.
Microsoft Copilot Adoption: 1-Week Assessment: Mayasoft’s assessment helps companies effectively adopt Microsoft Copilot products. Services include creating a change management roadmap, stakeholder analysis, risk analysis, and developing public relations campaigns. This offer is for customers who want to enhance ROI, increase employee engagement, transition to the future state of work, and expand the use of Microsoft technology.
Dynamics 365 Business Central Implementation: Winspire Solutions offers a Dynamics 365 Business Central solution for small to medium-sized enterprises. It offers tools to manage finances, operations, sales, and customer service. The solution provides real-time insights, compliance with PEPPOL e-Invoicing standards, and expert guidance and support throughout implementation.
Microsoft Intune Windows Client Management: 1-Day Workshop: This one-day remote workshop is aimed at IT administrators and service owners, focusing on Best Practices in Intune. The workshop includes a live demonstration of Intune operations and an analysis of your environment to highlight potential optimization needs. They also offer a pricing calculation to take the burden of Intune operations off your hands.
Your Compass through the World of Artificial Intelligence: 1-Day Workshop: Available in German, AppSphere’s workshop provides insights into current developments and practical applications of AI, including Microsoft Copilot, to enable teams to effectively implement AI in their organization. Participants learn to recognize the potential of AI technologies and develop practical solutions for their individual challenges. The workshop offers customizable content, practical demonstrations, and decision-making skills for sustainable integration of AI.
Copilot for Microsoft 365 Adoption Management: 8-Week Implementation: Mazzy Technologies offers a comprehensive solution to help organizations adopt Copilot for Microsoft 365. Their solution includes organizational change management, customized training programs, and implementation support. Benefits include enhanced productivity, improved collaboration, and greater efficiency.
Copilot for Microsoft 365 Implementation: QUANTIS TEKNOLOJI’s implementation is designed to equip IT professionals, business leaders, project managers, and end-users with the knowledge and skills needed to effectively leverage the capabilities of Copilot for Microsoft 365. The session covers core functionalities, benefits, integration, and practical applications in daily workflows and business processes. Attendees will learn how to maximize productivity, streamline operations, and enhance collaboration while ensuring security and compliance.
Copilot for Microsoft 365: 1-Day Workshop: The Copilot for Microsoft 365 Workshop is a 4-step activity that helps organizations evaluate and implement the AI-driven assistant. Participants will learn how Copilot for Microsoft 365 can enhance productivity and collaboration, explore potential solutions, and develop a tailored plan for implementation. ARTEX informacni systemy’s workshop includes modules on Copilot Studio, Copilot for Service, and Copilot for Sales. Deliverables include stakeholder identification, readiness assessment, scenario prioritization, and a pilot plan.
Copilot for Microsoft 365: Readiness and Adoption Workshop: Automize’s approach to Copilot for Microsoft 365 focuses on insights and understanding of your business and end-users, with a strong emphasis on adoption through training, communication, and change management. They also provide assistance in managing data governance and security, from assessment to implementation and onboarding, with ongoing advice on updates.
Microsoft 365 Migration Services: Managed Solutions: AVASOFT’s Total Microsoft 365 Migration Manager offers a complete, end-to-end managed service for migrating between different Microsoft 365 tenants, implementing new Microsoft 365 solutions, or consolidating multiple environments into a single tenant. The service includes assessments, migration planning, execution, and post-migration optimization, ensuring a seamless transition with minimal disruption. Enhanced collaboration capabilities and improved overall security posture are backed by expert support throughout the process.
Microsoft Intune Mobile Device Management (Android and iOS): Intellity offers a comprehensive mobile device management service for businesses, integrating seamlessly with Microsoft Intune. The service includes enforcing security policies, monitoring compliance, troubleshooting, and more. It provides transparent monthly costs, scalability, and relief for IT resources. The service improves mobile device management capabilities, strengthens security and compliance, and increases operational efficiency.
Copilot for Microsoft 365 Adoption Training: Post Purchase Utilization: Intech’s workshop covers Copilot for Microsoft 365 integration with Microsoft 365 applications, enhancing productivity, and can be customized for different teams. The training is available online and in-person globally. Prerequisites include basic proficiency in Microsoft 365 applications and access to Microsoft 365 licenses.
Microsoft Copilot for Sales: 4-Week Implementation: Microsoft Copilot for Sales is an AI assistant for sellers in Microsoft 365 that connects to sales solutions to bring next-generation AI and CRM platform updates and insights across productivity workflows. It works with Dynamics 365 Sales and Salesforce Sales Cloud and can be configured to work with other solutions. Velrada offers a collaborative design and implementation approach for Microsoft Copilot for Sales, enabling AI capabilities across sales teams and improving the effectiveness of sales meetings, emails, and routine tasks.
Microsoft Purview Data Loss Prevention: 4-Week Implementation Service: UNIFY Solutions offers expert-led DLP implementations for Microsoft Purview across communication and collaboration platforms. Their tailored policies and advanced features prevent accidental sharing of sensitive information, ensure compliance, and mitigate data breach risks. The service includes ongoing support and training, empowering organizations to maintain a secure information environment.
Microsoft Teams Calling: Half-Day Proof of Concept: Design and Management Systems will deploy a Microsoft Teams telephony proof of concept designed for educational settings. The engagement includes user account configuration, phone number setup, and live feature demonstration.
OnActuate Performance Testing Accelerator: 6-Week Implementation: OnActuate’s JMeter implementation helps test UI and API performance in Dynamics 365, ensuring seamless business processes and preparing for future growth. The implementation includes understanding customer processes, designing a test plan, developing and refining test cases, and conducting final testing.
OSS Copilot Marketing: The Microsoft Copilot workshop trains professionals, educators, and students to use the AI tool to improve productivity and efficiency. OnSolution Services’ workshop covers Copilot history, features, customization, integration, best practices, and practical exercises. Participants will acquire a thorough knowledge of Copilot and improve their productivity and efficiency at work.
Planning for Microsoft Places: UnifiedCommunications.com’s remote workshop helps organizations effectively deploy and maximize the benefits of Microsoft Places within the broader Microsoft 365 ecosystem. It includes identifying key use cases, live demonstrations, technical readiness, and adoption change management strategy. The workshop is ideal for organizations looking to integrate Microsoft Places with their existing Microsoft 365 suite.
Power Automate: 5-Hour Workshop: QUANTIS TEKNOLOJI’s workshop focuses on using Microsoft Power Automate to streamline business processes and drive innovation. Participants will learn to automate repetitive tasks, integrate with other Microsoft tools and third-party products, and use AI and machine learning. The workshop is suitable for business leaders, IT professionals, and digital transformation enthusiasts.
Power Automate Intermediate: 4-Day Workshop: Available in Spanish, Latinshare’s intermediate Power Automate training offers customers the opportunity to deepen their automation and process optimization skills, allowing them to transform manual tasks into automated workflows more efficiently. Participants will learn advanced techniques for handling premium connectors, variables, and complex flows, increasing productivity and improving decision-making based on data. The training integrates with Microsoft products such as Azure, Power Automate, and Microsoft 365.
Prepare Sites and Teams for Copilot for Microsoft 365: 2-Day Workshop: Copilot for Microsoft 365 is an AI-powered assistant that integrates with Microsoft 365 to automate tasks, provide suggestions, and offer real-time insights. It can access and utilize content stored in SharePoint sites and Teams channels, but a well-organized and secure environment is necessary for optimal effectiveness. Steepmeadow Solutions’ workshop includes a review of your organization’s current settings and discussion of best practices.
Role-based Microsoft Copilot Integration with Dynamics 365 Workshop: The proMX Role-Based Copilot for Dynamics 365 Workshop helps organizations enhance efficiency and productivity across various departments. It offers intelligent insights and automation for sales, data-driven decisions and streamlined workflows for marketing, predictive analytics and smart planning tools for project management, real-time data and robust financial modeling for finance, proactive service management and personalized support for customer service, secure and efficient solutions for legal, and intelligent talent management and workforce planning for HR.
RPA Discovery and Delivery: Ciklum offers automation solutions to streamline manual and repetitive tasks, allowing employees to focus on higher-value activities. This engagement includes a comprehensive review, cost-saving options, and ongoing support for smooth operation. The approach involves informing, optimizing, and operating, with a foundational cycle of review, alignment, and strategy preparation.
Threat Management and Protection: Cloud Target’s Threat Protection and Management is a cybersecurity solution that uses Microsoft 365 Defender platforms to protect digital assets against sophisticated threats. It offers security policy implementation, agent management, expert consulting, awareness campaigns, phishing protection, and security posture reports. Clients can benefit from policy implementation, agent management, expert consulting, and awareness campaigns.
SmartTime Service Desk as a Service: SmartTime is an IT service partner that specializes in service desk work and projects. They provide daily user support for Microsoft 365 and Copilot for Microsoft 365 and can be deployed to serve at your company’s service desk at fixed times. They also offer temporary support for IT projects.
Synergy Advisors POC-in-a-Box for Microsoft Purview Information Protection: Synergy Advisors’ POC-in-a-Box service evaluates Microsoft Purview Information Protection against an organization’s specific use cases in a dedicated lab and testing environment. The service includes on-premises staging, evaluation options, up to two core use cases, implementation, integration, knowledge transfer, documentation, and a lab environment. Synergy Advisors’ consulting services provide expert guidance and support to optimize Microsoft 365 environments, safeguard sensitive information, and meet regulatory requirements.
Teams Phone Systems for Nonprofits: 4-Day Implementation: Design and Management Systems’ service offers tailored telephony implementation for up to 120 users on Microsoft Teams, including setup, configuration, training, and ongoing support. Designed for nonprofit organizations, the implementation is scalable, secure, and compliant, with a post-deployment review for optimization.
Teams Phone Systems for Telecommunications and Media: 4-Day Implementation: Get a bespoke implementation plan for Microsoft Teams telephony with Design and Management Systems’ tailored services for telecom and media institutions. This offer includes seamless integration, user training and support, scalability, security, compliance, and post-implementation review and optimization.
Teams Phone Systems for Education: 4-Day Implementation: Design and Management Systems’ telephony implementation services for Microsoft Teams are tailored for educational institutions, integrating telephony capabilities for up to 120 users. We offer a bespoke implementation plan, seamless integration, user training and support, scalability and flexibility, security and compliance, and post-implementation review and optimization.
Windows 365: 5- to 7-Day Implementation: HTG’s pilot implementation of Windows 365 provides selected users with Cloud PCs to pilot Windows 11 in the production environment. It aims to showcase the ease of provisioning and managing Windows 365 Cloud PCs with Microsoft Intune, secure users’ identities, data, and devices with a zero-trust security model, and develop a joint deployment plan. The pilot is a strategic move towards embracing scalability, growth, and increased productivity.
Contact our partners
360ofme Data Privacy Integration Platform
Arquiconsult Angolan Localization Pack
Automate Inventory Reservation Processes Based on Complex Business Rules in Dynamics 365
BI Pixie – Engagement Metrics for Power BI
Dynamics 365 Business Central Concierge
Cash Flow Forecasting Add-on for Dynamics 365
Centralized Approval Management
CLAWS – Contract Writing Assistant
ClickClock Time and Attendance System
Cloud Endpoint Management: 2-Hour Briefing
Copilot for Microsoft 365 Adoption Guide: 2-Hour Briefing
Copilot for Microsoft 365: 2-Day Assessment
Copilot Studio Value Discovery
Crowe Metals Accelerator for E-Commerce
Culture Value-ation Indicator Assessment
DealerBI Vehicle Insights for Power BI
Devart Python Connector for FireBird
Digital Note Approval App by Embee
Microsoft Copilot Readiness: 7-Day Assessment
Direct Unit4 FP&A Connector for Power BI
Donna Assistant for Sales Reps on the Go
Electronic Banking Extension XK
Expo XT NICE CXone for Power BI
Facebook Ads to Power BI Connector
FirstComm Direct Routing Complete
Formidable Forms to Power BI Connector
Giftbox – Donation Management System
Humanist Human Resources Management System
LinkedIn ads to Power BI Connector
Lorenz Curve by Office Solution
Meraki Security and Monitoring Products and Services
Microsoft 365 Security Readiness: 4-Week Assessment
Microsoft Copilot for Microsoft 365 Readiness: 2-Week Assessment
PeopleX HR Tech: Your All-in-One HR Solution
Release Dissemination Platform
Prodware AI Context Hub for Microsoft Dynamics 365 Apps
Purchase Requisition Budget Management
Sibasi Human Resource Management App
Student First SaaS Contact Me Offer
SymphonySync for Constant Contact and Dynamics 365
Trade Promotion Management Software
twyz.WAWI Merchandise Management System
UniversalPlantViewer Connector
Vendor Onboarding in Dynamics 365
Visual Roadmap for Microsoft Azure DevOps (Services and Server)
WDS-Sicap Device Entitlement Server
Wiise Warehouse OnTime – Warehouse Management App
Wisefish External Production API
This content was generated by Microsoft Azure OpenAI and then revised by human editors.
Microsoft Tech Community – Latest Blogs –Read More
Season of AI in Durban: Igniting the Future of Data and AI
On a crisp July morning, Durban’s Umhlanga Ridge became the center of technological innovation, as the Coastlands Umhlanga Hotel and Convention Centre opened its doors to over 200 eager attendees for the Data & AI Community Day. Dubbed the Season of AI, this event was more than just a gathering; it was a catalyst for the future of data and artificial intelligence in South Africa.
The event, co-organized by Microsoft MVP Niels Berglund and former MVP Lawrance Reddy, marked a significant moment for the local tech community. The vibrant atmosphere buzzed with anticipation as experts, developers, and AI enthusiasts from across the region converged to share knowledge, network, and explore the latest advancements in AI and data technologies.
The day’s agenda was a testament to the breadth and depth of the AI landscape. From 60-minute deep dives into Azure Open AI and machine learning to rapid-fire 20-minute sessions on generative AI and database development, there was something for everyone. The event’s inclusivity extended beyond just Microsoft technologies, offering a holistic view of the AI world, with insights into non-Microsoft tools and platforms.
One of the day’s standout moments came from former Microsoft Learn Student Ambassador (MLSA) Fanie Ndlovu, whose session on Retrieval-Augmented Generation (RAG) left the audience in awe. Fanie’s demonstration of combining personal data with OpenAI GPT models was an eye-opener for many, revealing new possibilities in AI customization and highlighting the critical importance of cloud computing skills. His presentation bridged the gap between theoretical knowledge and practical application, inspiring attendees to explore beyond the familiar boundaries of public AI models.
Attendees discussing during the event
As the sessions unfolded, it became clear that this was not just a local event, it was a world-class conference that held its own against larger, more established gatherings like the Africa AI Expo in Sandton. The feedback from attendees echoed this sentiment, with many expressing their surprise and delight at the quality of content and the opportunity to engage with leading experts in the field.
“This event exceeded my expectations,” one attendee remarked. “The talks were packed with valuable insights, and the networking opportunities were top-notch. I’m leaving here feeling inspired and motivated to put what I learned into practice.”
The event’s success was not just in the knowledge shared but in the connection’s opportunities. The The Durban AI community is growing, and events like these are the lifeblood of that growth. Niels Berglund and Lawrance Reddy’s commitment to nurturing this community is evident in their plans for future events, aiming to host four more gatherings in the coming year. Their mentorship and encouragement of new speakers are setting the stage for a new generation of AI leaders in South Africa.
As the day ended, the impact of the Season of AI was undeniable. It was a day of learning, connecting, and envisioning a future where Durban stands at the forefront of AI innovation in Africa. The spark ignited on July 20, 2024, will undoubtedly continue to burn brightly in the months and years to come, as the community builds on the foundation laid at this extraordinary event. To conclude, you might want to have a look at the Photo Gallery of the event.
Microsoft Tech Community – Latest Blogs –Read More
Regarding the execution time in the ‘Simulink Support Package for Arduino Hardware’
Hello,
I have some questions regarding the execution time in the ‘Simulink Support Package for Arduino Hardware’.
Q1. If I want to run a Simulink model at 100Hz on Arduino Hardware, should I set the Fixed-step size to 10ms in the Solver details? (My model is based on sensor values)
Q2. Or my model is based on sensor values, and I want it to run at 100Hz. In this case, should I set the sample time of the I2C controller read block to 10ms?
Q3. What happens if the execution time of my model exceeds 10ms (an overrun occurs)?
For example, let’s assume that the model operates based on sensor values received (start model) every 10ms. If the algorithm takes 15ms to run, I see two possible options:
The algorithm runs with the sensor values from time t, and the sensor values from t+10ms are discarded (since the algorithm is still running), and the algorithm runs again with the sensor values from t+20ms.
The algorithm runs with the sensor values from time t, and as soon as the algorithm finishes, it starts again with the sensor values from t+10ms at t+15ms.
Which one happens? I believe it is option 1.
If someone knows, please provide an answer.
Thank you.Hello,
I have some questions regarding the execution time in the ‘Simulink Support Package for Arduino Hardware’.
Q1. If I want to run a Simulink model at 100Hz on Arduino Hardware, should I set the Fixed-step size to 10ms in the Solver details? (My model is based on sensor values)
Q2. Or my model is based on sensor values, and I want it to run at 100Hz. In this case, should I set the sample time of the I2C controller read block to 10ms?
Q3. What happens if the execution time of my model exceeds 10ms (an overrun occurs)?
For example, let’s assume that the model operates based on sensor values received (start model) every 10ms. If the algorithm takes 15ms to run, I see two possible options:
The algorithm runs with the sensor values from time t, and the sensor values from t+10ms are discarded (since the algorithm is still running), and the algorithm runs again with the sensor values from t+20ms.
The algorithm runs with the sensor values from time t, and as soon as the algorithm finishes, it starts again with the sensor values from t+10ms at t+15ms.
Which one happens? I believe it is option 1.
If someone knows, please provide an answer.
Thank you. Hello,
I have some questions regarding the execution time in the ‘Simulink Support Package for Arduino Hardware’.
Q1. If I want to run a Simulink model at 100Hz on Arduino Hardware, should I set the Fixed-step size to 10ms in the Solver details? (My model is based on sensor values)
Q2. Or my model is based on sensor values, and I want it to run at 100Hz. In this case, should I set the sample time of the I2C controller read block to 10ms?
Q3. What happens if the execution time of my model exceeds 10ms (an overrun occurs)?
For example, let’s assume that the model operates based on sensor values received (start model) every 10ms. If the algorithm takes 15ms to run, I see two possible options:
The algorithm runs with the sensor values from time t, and the sensor values from t+10ms are discarded (since the algorithm is still running), and the algorithm runs again with the sensor values from t+20ms.
The algorithm runs with the sensor values from time t, and as soon as the algorithm finishes, it starts again with the sensor values from t+10ms at t+15ms.
Which one happens? I believe it is option 1.
If someone knows, please provide an answer.
Thank you. simulink, simulink support package for arduino hardware, execution time, overrun MATLAB Answers — New Questions
Can’t get better interpolation at some points
Hi all,
I would be grateful if someone could help with the following matter:
I have a set of complex data called [a2norm_real and a2norm_imag (as per attached)], and another set of complex data was generated as shown in the code. I tried to achieve better interpolation for the Gain, but it fails at certain points (as per attached). No matter how many points I generate, it fails at the same place each time. I have tried different 1D and 2D interpolation methods (including the one below), but this was the best one I could achieve. Thanks!
Here is the code:
data2 = readtable(‘System Gain.xlsx’, ‘VariableNamingRule’, ‘preserve’);
% Process the second file
a2norm_real = data2{:, 5};
a2norm_imag = data2{:, 6};
a2norm_complx = complex(a2norm_real,a2norm_imag);
Gain = complex(data2{:, 1}, data2{:, 2});
a21_mag = linspace(min(abs(a2norm_complx)),max(abs(a2norm_complx)),31).’;
a21_ph = linspace(0,0,31).’;
a21_complx = a21_mag.*exp(1i*pi/180.*a21_ph);
% Perform the interpolation
Interp = griddata(a2norm_real, a2norm_imag, Gain, real(a21_complx), imag(a21_complx), ‘nearest’);
figure;
plot(abs(a2norm_complx), System_Gain, ‘o’, ‘DisplayName’, ‘System gain’);
hold on;
plot(abs(a21_target), System_Gain_Interp, ‘:*’, ‘DisplayName’, ‘System_Gain_Selected’);
legend(‘show’); % Displays the legend with the DisplayName labels
title(‘(Default) Linear Interpolation’);
grid on;
legend(‘Location’, ‘best’);Hi all,
I would be grateful if someone could help with the following matter:
I have a set of complex data called [a2norm_real and a2norm_imag (as per attached)], and another set of complex data was generated as shown in the code. I tried to achieve better interpolation for the Gain, but it fails at certain points (as per attached). No matter how many points I generate, it fails at the same place each time. I have tried different 1D and 2D interpolation methods (including the one below), but this was the best one I could achieve. Thanks!
Here is the code:
data2 = readtable(‘System Gain.xlsx’, ‘VariableNamingRule’, ‘preserve’);
% Process the second file
a2norm_real = data2{:, 5};
a2norm_imag = data2{:, 6};
a2norm_complx = complex(a2norm_real,a2norm_imag);
Gain = complex(data2{:, 1}, data2{:, 2});
a21_mag = linspace(min(abs(a2norm_complx)),max(abs(a2norm_complx)),31).’;
a21_ph = linspace(0,0,31).’;
a21_complx = a21_mag.*exp(1i*pi/180.*a21_ph);
% Perform the interpolation
Interp = griddata(a2norm_real, a2norm_imag, Gain, real(a21_complx), imag(a21_complx), ‘nearest’);
figure;
plot(abs(a2norm_complx), System_Gain, ‘o’, ‘DisplayName’, ‘System gain’);
hold on;
plot(abs(a21_target), System_Gain_Interp, ‘:*’, ‘DisplayName’, ‘System_Gain_Selected’);
legend(‘show’); % Displays the legend with the DisplayName labels
title(‘(Default) Linear Interpolation’);
grid on;
legend(‘Location’, ‘best’); Hi all,
I would be grateful if someone could help with the following matter:
I have a set of complex data called [a2norm_real and a2norm_imag (as per attached)], and another set of complex data was generated as shown in the code. I tried to achieve better interpolation for the Gain, but it fails at certain points (as per attached). No matter how many points I generate, it fails at the same place each time. I have tried different 1D and 2D interpolation methods (including the one below), but this was the best one I could achieve. Thanks!
Here is the code:
data2 = readtable(‘System Gain.xlsx’, ‘VariableNamingRule’, ‘preserve’);
% Process the second file
a2norm_real = data2{:, 5};
a2norm_imag = data2{:, 6};
a2norm_complx = complex(a2norm_real,a2norm_imag);
Gain = complex(data2{:, 1}, data2{:, 2});
a21_mag = linspace(min(abs(a2norm_complx)),max(abs(a2norm_complx)),31).’;
a21_ph = linspace(0,0,31).’;
a21_complx = a21_mag.*exp(1i*pi/180.*a21_ph);
% Perform the interpolation
Interp = griddata(a2norm_real, a2norm_imag, Gain, real(a21_complx), imag(a21_complx), ‘nearest’);
figure;
plot(abs(a2norm_complx), System_Gain, ‘o’, ‘DisplayName’, ‘System gain’);
hold on;
plot(abs(a21_target), System_Gain_Interp, ‘:*’, ‘DisplayName’, ‘System_Gain_Selected’);
legend(‘show’); % Displays the legend with the DisplayName labels
title(‘(Default) Linear Interpolation’);
grid on;
legend(‘Location’, ‘best’); interpolation MATLAB Answers — New Questions