Category: News
How to migrate a business from Google Workspace to Microsoft 365? Users email, docs, sheets, Teams
I was tasked with my company of about 10 people to migrate our current workspace in Google to Microsoft 365. I was given a list of Microsoft One Drive prepaid keys to do this and I have set up my account but not too sure of the next step as there is a lot of articles and I’m unsure which is the most updated and seamless way to approach this.
I would like to transfer emails, folders, docs, and sheets from Google to One Drive as well as set up Teams so we are fully integrated in the Microsoft suite! I’m not too sure of what is necessary as I’m only familiar with Google Workspace and Slack.
So far I have the prepaid keys list but how can I start migrating over? Thank you!
I was tasked with my company of about 10 people to migrate our current workspace in Google to Microsoft 365. I was given a list of Microsoft One Drive prepaid keys to do this and I have set up my account but not too sure of the next step as there is a lot of articles and I’m unsure which is the most updated and seamless way to approach this. I would like to transfer emails, folders, docs, and sheets from Google to One Drive as well as set up Teams so we are fully integrated in the Microsoft suite! I’m not too sure of what is necessary as I’m only familiar with Google Workspace and Slack. So far I have the prepaid keys list but how can I start migrating over? Thank you! Read More
124.0.2478.80 Policies not applying
We have seen this with 124.0.2478.80 as others have posted on other boards, that Cloud policies are removed after the 124.0.2478.80 update. If I revert one version back, they return to edge://policy.
Anyone else seen this?
Using the Edge management in 365 admin.
We have seen this with 124.0.2478.80 as others have posted on other boards, that Cloud policies are removed after the 124.0.2478.80 update. If I revert one version back, they return to edge://policy. Anyone else seen this?Using the Edge management in 365 admin. Read More
How to plot the figure with 3 variables in 2d, with the value of z is proportional to the color?
Dear Friends
I would like to plot the figure with 3 variables in 2d, with the value of z is proportional to the color as the figure attached. where X(1 x N); Y(1 x N) and Z(N*N) matrix. I want to have a scatter plot as an attached figure. Thank you for your attention
Code
load(‘w.mat’);load(‘k.mat’);load(‘Detal_E.mat’);
w0=6.266963343377698e+05;
[X,Y] = meshgrid(w/w0,k);
h=surf(X, Y,Detal_E*1e6);
xlabel(‘w’)
ylabel(‘ k’)
zlabel(‘Detal E’)
myColorMap = jet(250);
myColorMap(1,:) = 1;
colormap(myColorMap);
colorbar
shading interp;
view(2)Dear Friends
I would like to plot the figure with 3 variables in 2d, with the value of z is proportional to the color as the figure attached. where X(1 x N); Y(1 x N) and Z(N*N) matrix. I want to have a scatter plot as an attached figure. Thank you for your attention
Code
load(‘w.mat’);load(‘k.mat’);load(‘Detal_E.mat’);
w0=6.266963343377698e+05;
[X,Y] = meshgrid(w/w0,k);
h=surf(X, Y,Detal_E*1e6);
xlabel(‘w’)
ylabel(‘ k’)
zlabel(‘Detal E’)
myColorMap = jet(250);
myColorMap(1,:) = 1;
colormap(myColorMap);
colorbar
shading interp;
view(2) Dear Friends
I would like to plot the figure with 3 variables in 2d, with the value of z is proportional to the color as the figure attached. where X(1 x N); Y(1 x N) and Z(N*N) matrix. I want to have a scatter plot as an attached figure. Thank you for your attention
Code
load(‘w.mat’);load(‘k.mat’);load(‘Detal_E.mat’);
w0=6.266963343377698e+05;
[X,Y] = meshgrid(w/w0,k);
h=surf(X, Y,Detal_E*1e6);
xlabel(‘w’)
ylabel(‘ k’)
zlabel(‘Detal E’)
myColorMap = jet(250);
myColorMap(1,:) = 1;
colormap(myColorMap);
colorbar
shading interp;
view(2) 3 variable in 2d MATLAB Answers — New Questions
Difficulty using the database function
Hi. I have Matlab 2021b and Matlab 2024a installed and with Matlab 2021b I can easily connect to a database via an ODBC bridge just like in the documentation example :
conn=database(‘odbcdatasource’,’scott’,’tiger’)
The same line of code doesnt work with Matlab 2024a. I get the error
Dot indexing into the result of a function call requires parentheses after the function name. The supported syntax is ‘database().internal’.
Error in database (line 59)
connection = database.internal.utilities.hdatabase(varargin{:});
I dont get it. What am I doing wrong ?Hi. I have Matlab 2021b and Matlab 2024a installed and with Matlab 2021b I can easily connect to a database via an ODBC bridge just like in the documentation example :
conn=database(‘odbcdatasource’,’scott’,’tiger’)
The same line of code doesnt work with Matlab 2024a. I get the error
Dot indexing into the result of a function call requires parentheses after the function name. The supported syntax is ‘database().internal’.
Error in database (line 59)
connection = database.internal.utilities.hdatabase(varargin{:});
I dont get it. What am I doing wrong ? Hi. I have Matlab 2021b and Matlab 2024a installed and with Matlab 2021b I can easily connect to a database via an ODBC bridge just like in the documentation example :
conn=database(‘odbcdatasource’,’scott’,’tiger’)
The same line of code doesnt work with Matlab 2024a. I get the error
Dot indexing into the result of a function call requires parentheses after the function name. The supported syntax is ‘database().internal’.
Error in database (line 59)
connection = database.internal.utilities.hdatabase(varargin{:});
I dont get it. What am I doing wrong ? database MATLAB Answers — New Questions
Terraform on Azure May 2024 Update
Welcome to our April 2024 update! These blogposts will be covering everything we’ve gotten up to recently with Terraform on Azure. We’ve got lots of exciting content to talk about this month. Look forward to the next update in June!
AzureRM provider
The AzureRM provider is a manual, stable, simplified experience co-owned by HashiCorp and Microsoft. Our teams are always adding new features and services to ensure that you can manage these when they are generally available (GA).
A few highlights to call out, though there are certainly more updates than this:
Support for Key Vault reference secrets in Container Apps (v3.98)
Support for Configuring Tables in Log Analytics (v3.86)
Fixing a bug with Linux function apps breaking when losing external WEBSITE_RUN_FROM_PACKAGE setting (v3.97)
Fixed a bug with App Service Certificates being unable to determine Key Vault Resource ID (v3.95)
Support for .NET 8.0 and Node 20 for Linux and Windows Function Apps (v3.96)
Fixed a bug with PIM Active and Eligible Role Assignments
Support for Customer Managed Keys with Managed HSM for Key Vault (v3.102.0)
Support for CMKs with MHSM for Storage Accounts (v3.102.0)
We’re currently on version 3.102 of the provider. For the latest updates, check out the release notes.
AzAPI provider
The AzAPI provider is a generative, automatic experience that gets you access to new Azure services, features, or APIs. Utilizing the provider and its peripheral VSCode extension is critical to your success if the latest and greatest is the focus of your team or organization.
Latest Updates
We’re happy to announce the release of AzAPI v1.13.1, which removes JSON through the implementation of dynamic schemas. Previously, AzAPI required JSON encoding and decoding to define properties within the body. The JSON has been replaced with dynamic schemas, which are defined the exact same way as before:
resource “azapi_resource” “automationAccount” {
type = “Microsoft.Automation/automationAccounts@2023-11-01”
parent_id = azapi_resource.resourceGroup.id
name = “example-automation-account”
location = “westeurope”
body = {
properties = {
encryption = {
keySource = “Microsoft.Automation”
}
publicNetworkAccess = true
sku = {
name = “Basic”
}
}
}
response_export_values = [“*”]
}
Dynamic schemas disambiguate changes within the properties; if a sensitive property is modified alongside other changes to the configuration, terraform plan will show changing properties that are not marked sensitive and not show sensitive properties. They also allow you to specify exactly what output properties you wish to see from the resource.
For examples and more scenarios, read more about dynamic schemas in our latest blogpost.
Usage Trends
We’re happy to see AzAPI eclipse 20M downloads! Thank you for your continued interest in the provider and we hope everyone continues to use it!
Data of snapshot from May 7th, 2024
Azure Verified Modules
Azure Verified Modules (AVM) is an initiative to consolidate and set the standards for what a good Infrastructure-as-Code module looks like. Got to https://aka.ms/avm to learn more.
Modules will then align to these standards, across languages (Bicep, Terraform etc.) and will then be classified as AVMs and available from their respective language specific registries.
The following Terraform modules have been released in February through April:
Kusto Clusters
Service Bus Namespace
Azure Databricks Workspace
Private DNS Zone
App Managed Environment
AVS Private Cloud
Cognitive Service
Virtual Machine Scale Set
Azure Container Registry
Bastion Host
Network Security Group
Public IP Address
Storage Account
Web/Function App
Static Web App
We would specifically like to call out the cognitive services module, which is used to manage the OpenAI service and other Azure AI services. The below code is all you need to get started:
terraform {
required_version = “>= 1.3.0”
required_providers {
azurerm = {
source = “hashicorp/azurerm”
version = “>= 3.7.0, < 4.0.0”
}
random = {
source = “hashicorp/random”
version = “>= 3.5.0, < 4.0.0”
}
}
}
provider “azurerm” {
features {
resource_group {
prevent_deletion_if_contains_resources = false
}
}
}
# This ensures we have unique CAF compliant names for our resources.
module “naming” {
source = “Azure/naming/azurerm”
version = “>= 0.3.0”
}
# This is required for resource modules
resource “azurerm_resource_group” “this” {
location = “East US”
name = “avm-res-cognitiveservices-account-${module.naming.resource_group.name_unique}“
}
resource “random_pet” “pet” {}
module “avm-res-cognitiveservices-account” {
source = “Azure/avm-res-cognitiveservices-account/azurerm”
version = “0.1.1”
kind = “OpenAI”
location = azurerm_resource_group.this.location
name = “OpenAI-${random_pet.pet.id}“
resource_group_name = azurerm_resource_group.this.name
sku_name = “S0”
cognitive_deployments = {
“gpt-4-32k” = {
name = “gpt-4-32k”
model = {
format = “OpenAI”
name = “gpt-4-32k”
version = “0613”
}
scale = {
type = “Standard”
}
}
}
}
The current list of AVM resource modules stands at 31 and the number of pattern modules is currently 5. For a list of available modules, as well as corresponding registry links, please visit Terraform Modules | Azure Verified Modules. This list also includes a list of planned modules that the team is prioritizing in the coming months.
Head over to If you wish to learn more, check out John Savill’s video.
Community
The Terraform on Azure community is a key investment for our team in bringing the latest product updates, connecting you with other Terraform on Azure users, and enabling you to engage in ongoing feedback as we aim to improve your Terraform experience on Azure. This section will consistently speak on community related feedback or engagements. As always, register to join the community at https://aka.ms/AzureTerraform and the slack at https://aka.ms/joinaztfslack!
Community Calls
The March community call featured our very own Matt White and Arkahna’s Simone Bennett. Both presenters collaborated on a deep dive into the Azure Landing Zone (ALZ). Watch the recording below:
The May community call will be with just the Azure Terraform team, as we have a lot of exciting updates to share and also want feedback from the Terraform on Azure community. Join us on 5/16 at 10 am PT! https://aka.ms/aztfcc
Docs
In the last few months, we have modified the structure of Terraform overview page for simplicity and better user experience. Meanwhile, we have released two new Terraform articles:
Create VNet NAT Gateway
Azure Virtual Network with Private Endpoint
Microsoft Tech Community – Latest Blogs –Read More
Erorr when replace row’s value of table in-array.
hi guys, i dont know why this error happened to me. I already check the variable and i think it is already rigth.
Here is my code :
clear;
clc;
% Model Parameter
H = 5;
L = 15;
Ns = 2;
Nb = 1;
PortalHeight = H;
Bayspan = L;
NumberStory = Ns;
NumberBay = Nb;
% Variable1
h = [0.8,1.00,1.20,1.40,1.6,1.80];
% Variable2
Lss = [2.00,2.40,2.80,3.20,3.60,4.00];
% Variable3
Nss = [2,3,4];
% Definition variant
Var1HeightofTrussBeam = h;
Var2LengthSpecialSegment = Lss;
Var3NumberSpecialSegment = Nss;
ijk = 0;
for i = 1:numel(h)
for j = 1:numel(Lss)
for k = 1:numel(Nss)
ijk = ijk+1;
Variantmodel{ijk,:} = table(ijk,h(i),Lss(j),Nss(k),’VariableNames’,{‘VariantID’,’Height’,’Length’,’Number’});
%% Cooridinate Point Base(base)
Xbase{ijk,:} = L*(0:NumberBay);
Zbase{ijk,:} = repelem(0,1,length(Xbase{ijk,:}));
%% Column(col)
Xcolumn = L*(0:NumberBay);
Zcolumn = repelem(H*(1:NumberStory),1,length(Xcolumn));
Xbotbeam = L*(0:NumberBay);
Zbotbeam = repelem((H*(1:NumberStory)-h(i)),1,length(Xbotbeam));
idx = unique(Zbotbeam(:).’);
Zbottombeam{ijk,:} = idx;
% replicate [X] to be the same size as [Z] for plotting:
Xcol{ijk,:} = repmat([Xcolumn,Xbotbeam],1,NumberStory);
Zcol{ijk,:} = [Zcolumn,Zbotbeam];
%% Cooridinate Point Ordinary Segment (os)
% calculate span length of ordinary segment
Los = (L-Lss(j))/2;
Nos = Los/h(i);
Nos = round(Nos);
numberordinarysegment{ijk,:} = Nos;
los = Los/Nos;
totalspan{ijk,:} = los*Nos*2+Lss(j);
if totalspan{ijk,:} == 15.000
checkspan{ijk,:} = "correct span";
else
checkspan{ijk,:} = "span must be 15m";
end
% top and bottom joint of ordinary segment(os)
XTopOrdinarySegment = reshape([los*(1:Nos),(L/2+Lss(j)/2)+los*(0:Nos-1)].’+L*(0:(NumberBay-1)),1,[]);
XBottomOrdinarySegment = XTopOrdinarySegment;
ZTopOrdinarySegment = repelem(H*(1:NumberStory),1,2*Nos*NumberBay);
ZBottomOrdinarySegment = repelem(H*(1:NumberStory)-h(i),1,2*Nos*NumberBay);
% replicate [X] to be the same size as [Z] for plotting:
Xos{ijk,:} = repmat([XTopOrdinarySegment,XBottomOrdinarySegment],1,NumberStory);
Zos{ijk,:} = [ZTopOrdinarySegment,ZBottomOrdinarySegment];
%% Cooridinate Point Special Segment (ss)
% calculate span length of special segment
lss = Lss(j)/Nss(k);
% top and bottom joint of special segment(ss)
XTopSpecialSegment = reshape((lss*(0:Nss(k))+L/2-Lss(j)/2).’+L*(0:(NumberBay-1)),1,[]);
XBottomSpecialSegment = XTopSpecialSegment;
ZTopSpecialSegment = repelem(H*(1:NumberStory),1,length(XTopSpecialSegment));
ZBottomSpecialSegment = repelem(H*(1:NumberStory)-h(i),1,length(XBottomSpecialSegment));
% replicate [X] to be the same size as [Z] for plotting:
Xss{ijk,:} = repmat([XTopSpecialSegment,XBottomSpecialSegment],1,NumberStory);
Zss{ijk,:} = [ZTopSpecialSegment,ZBottomSpecialSegment];
%% Plot Cooridinate Point (X,Z)
X{ijk,:} = [Xbase{ijk,:},Xcol{ijk,:},Xos{ijk,:},Xss{ijk,:}];
Z{ijk,:} = [Zbase{ijk,:},Zcol{ijk,:},Zos{ijk,:},Zss{ijk,:}];
scatter(X{ijk,:},Z{ijk,:},’filled’),grid on
%check angle
tangent = (Lss(j)/Nss(k))/h(i);
anglespecialsegment(ijk) = atand(tangent);
%% Name the Joint
jointbase{ijk} = table((1:numel(Xbase{ijk,:}))’,Xbase{ijk,:}’,Zbase{ijk,:}’,’VariableNames’,{‘ID’,’X’,’Z’});
jointcolumn{ijk} = table((max(jointbase{ijk}.ID)+1:numel(Xcol{ijk,:})+max(jointbase{ijk}.ID))’,Xcol{ijk,:}’,Zcol{ijk,:}’,’VariableNames’,{‘ID’,’X’,’Z’});
jointordinarysegment{ijk} = table((max(jointcolumn{ijk}.ID)+1:numel(Xos{ijk,:})+max(jointcolumn{ijk}.ID))’,Xos{ijk,:}’,Zos{ijk,:}’,’VariableNames’,{‘ID’,’X’,’Z’});
jointtopordinarysegment{ijk} = jointordinarysegment{ijk}(ismember(jointordinarysegment{ijk}.Z,Zcolumn),:);
jointbottomordinarysegment{ijk} = jointordinarysegment{ijk}(ismember(jointordinarysegment{ijk}.Z,Zbotbeam),:);
jointspecialsegment{ijk} = table((max(jointbottomordinarysegment{ijk}.ID)+1:numel(Xss{ijk,:})+max(jointbottomordinarysegment{ijk}.ID))’,Xss{ijk,:}’,Zss{ijk,:}’,’VariableNames’,{‘ID’,’X’,’Z’});
jointtopspecialsegment{ijk} = jointspecialsegment{ijk}(ismember(jointspecialsegment{ijk}.Z,Zcolumn),:);
jointbottomspecialsegment{ijk} = jointspecialsegment{ijk}(ismember(jointspecialsegment{ijk}.Z,Zbotbeam),:);
end
end
end
% Verify Variants Which Passed the Angle Requirement
tablecheck = table((1:numel(anglespecialsegment))’,totalspan,anglespecialsegment’,’VariableNames’,{‘VariantID’,’Total Span’,’Angle’});
VariantIDPassed = tablecheck.VariantID(tablecheck.Angle>=30 & tablecheck.Angle<=60);
jointbase = table((1:numel(jointbase))’,jointbase’,’VariableNames’,{‘VariantID’,’Joint Base’});
jointbase = jointbase(ismember(jointbase.VariantID,VariantIDPassed),:);
jointcolumn = table((1:numel(jointcolumn))’,jointcolumn’,’VariableNames’,{‘VariantID’,’Joint Column’});
jointcolumn = jointcolumn(ismember(jointcolumn.VariantID,VariantIDPassed),:);
jointtopordinarysegment = table((1:numel(jointtopordinarysegment))’,jointtopordinarysegment’,’VariableNames’,{‘VariantID’,’Joint Top Ordinary Segment’});
jointtopordinarysegment = jointtopordinarysegment(ismember(jointtopordinarysegment.VariantID,VariantIDPassed),:);
jointbottomordinarysegment = table((1:numel(jointbottomordinarysegment))’,jointbottomordinarysegment’,’VariableNames’,{‘VariantID’,’Joint Bottom Ordinary Segment’});
jointbottomordinarysegment = jointbottomordinarysegment(ismember(jointbottomordinarysegment.VariantID,VariantIDPassed),:);
jointtopspecialsegment = table((1:numel(jointtopspecialsegment))’,jointtopspecialsegment’,’VariableNames’,{‘VariantID’,’Joint Top Special Segment’});
jointtopspecialsegment = jointtopspecialsegment(ismember(jointtopspecialsegment.VariantID,VariantIDPassed),:);
jointbottomspecialsegment = table((1:numel(jointbottomspecialsegment))’,jointbottomspecialsegment’,’VariableNames’,{‘VariantID’,’Joint Bottom Special Segment’});
jointbottomspecialsegment = jointbottomspecialsegment(ismember(jointbottomspecialsegment.VariantID,VariantIDPassed),:);
Zbottombeam{ijk} = table((1:numel(Zbottombeam{ijk,:}))’,Zbottombeam{ijk,:}’,’VariableNames’,{‘VariantID’,’Z Bottom Beam’});
Zbottombeam = Zbottombeam(VariantIDPassed);
%% Name the Frame
% column
for i = 1:height(VariantIDPassed)
jointIcolumn = 0;
jointJcolumn = 0;
jointcolumnnew{i,:} = jointcolumn.("Joint Column"){i}(ismember(jointcolumn.("Joint Column"){i}.Z,jointtopordinarysegment.("Joint Top Ordinary Segment"){i}.Z),:);
jointcolumnnew{i,:} = vertcat(jointbase.("Joint Base"){i},jointcolumnnew{i});
for j = 1:height(jointcolumnnew{i,1})-2
jointIcolumn(j) = jointcolumnnew{i,1}.ID(j);
jointJcolumn(j) = jointcolumnnew{i,1}.ID(j+2);
end
framecolumn{i,:} = table((1:j)’,jointIcolumn’,jointJcolumn’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
end
%% Name the Frame
% top ordinary segment (TOS) (this phase is not automatic for different story)
for i = 1:height(VariantIDPassed)
endTOS{i,:} = jointcolumn.("Joint Column"){i}(ismember(jointcolumn.("Joint Column"){i}.Z,jointtopordinarysegment.("Joint Top Ordinary Segment"){i}.Z),:);
jointTOS{i,:} = vertcat(jointtopordinarysegment.("Joint Top Ordinary Segment"){i},endTOS{i});
jointTOSnew1{i,:} = sortrows(jointTOS{i}(ismember(jointTOS{i}.Z,H),:),2);
jointTOSnew2{i,:} = sortrows(jointTOS{i}(ismember(jointTOS{i}.Z,H*Ns),:),2);
jointTOSnew{i,:} = vertcat(jointTOSnew1{i},jointTOSnew2{i});
end
for i = 1:height(VariantIDPassed)
jointI = 0;
jointJ = 0;
for j = 1:height(jointTOSnew1{i,1})-1
jointI(j) = jointTOSnew1{i,1}.ID(j);
jointJ(j) = jointTOSnew1{i,1}.ID(j+1);
end
lastframenumber{i,:} = max(framecolumn{i,1}.("Frame ID"));
frameTOS1{i,:} = table((lastframenumber{i}+1:lastframenumber{i}+j)’,jointI’,jointJ’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
%take special segment
frameTSB1{i,:} = frameTOS1{i,1}(median(1:height(frameTOS1{i,1})),:);
%eliminate special segment
frameTOS1{i,1}(median(1:height(frameTOS1{i,1})),:) = [];
%specified end and mid
endsegment1 = 1:round(height(frameTOS1{i,1})/4);
endsegment2 = (1+height(frameTOS1{i,1})-round(height(frameTOS1{i,1})/4)):height(frameTOS1{i,1});
endsegment = horzcat(endsegment1,endsegment2);
midsegment = not(ismember(1:height(frameTOS1{i,1}),endsegment));
frameTOSend1{i,:} = frameTOS1{i,1}(endsegment,:);
frameTOSmid1{i,:} = frameTOS1{i,1}(midsegment,:);
end
for i = 1:height(VariantIDPassed)
jointI = 0;
jointJ = 0;
for j = 1:height(jointTOSnew2{i,1})-1
jointI(j) = jointTOSnew2{i,1}.ID(j);
jointJ(j) = jointTOSnew2{i,1}.ID(j+1);
end
lastframenumber{i,:} = max(frameTOS1{i,1}.("Frame ID"));
frameTOS2{i,:} = table((lastframenumber{i}+1:lastframenumber{i}+j)’,jointI’,jointJ’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
%eliminate special segment
frameTOS2{i,1}(median(1:height(frameTOS2{i,1})),:) = [];
%specified end and mid
endsegment1 = 1:round(height(frameTOS2{i,1})/4);
endsegment2 = (1+height(frameTOS2{i,1})-round(height(frameTOS2{i,1})/4)):height(frameTOS2{i,1});
endsegment = horzcat(endsegment1,endsegment2);
midsegment = not(ismember(1:height(frameTOS2{i,1}),endsegment));
frameTOSend2{i,:} = frameTOS2{i,1}(endsegment,:);
frameTOSmid2{i,:} = frameTOS2{i,1}(midsegment,:);
end
frameTOS = cellfun(@(varargin)vertcat(varargin{:}),frameTOS1,frameTOS2,’UniformOutput’,false);
frameTOSend = cellfun(@(varargin)vertcat(varargin{:}),frameTOSend1,frameTOSend2,’UniformOutput’,false);
frameTOSmid = cellfun(@(varargin)vertcat(varargin{:}),frameTOSmid1,frameTOSmid2,’UniformOutput’,false);
%% Name the Frame
% bottom ordinary segment (BOS) (this phase is not automatic for different story)
for i = 1:height(VariantIDPassed)
endBOS{i,:} = jointcolumn.("Joint Column"){i}(ismember(jointcolumn.("Joint Column"){i}.Z,jointbottomordinarysegment.("Joint Bottom Ordinary Segment"){i}.Z),:);
jointBOS{i,:} = vertcat(jointbottomordinarysegment.("Joint Bottom Ordinary Segment"){i},endBOS{i});
jointBOSnew1{i,:} = sortrows(jointBOS{i}(ismember(jointBOS{i}.Z,Zbottombeam{i}(1)),:),2);
jointBOSnew2{i,:} = sortrows(jointBOS{i}(ismember(jointBOS{i}.Z,Zbottombeam{i}(2)),:),2);
jointBOSnew{i,:} = vertcat(jointBOSnew1{i},jointBOSnew2{i});
end
for i = 1:height(VariantIDPassed)
jointI = 0;
jointJ = 0;
for j = 1:height(jointBOSnew1{i,1})-1
jointI(j) = jointBOSnew1{i,1}.ID(j);
jointJ(j) = jointBOSnew1{i,1}.ID(j+1);
end
lastframenumber{i,:} = max(frameTOS{i,1}.("Frame ID"));
frameBOS1{i,:} = table((lastframenumber{i}+1:lastframenumber{i}+j)’,jointI’,jointJ’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
%take special segment
frameBSB1{i,:} = frameBOS1{i,1}(median(1:height(frameBOS1{i,1})),:);
%eliminate special segment
frameBOS1{i,1}(median(1:height(frameBOS1{i,1})),:) = [];
%specified end and mid
endsegment1 = 1:round(height(frameBOS1{i,1})/4);
endsegment2 = (1+height(frameBOS1{i,1})-round(height(frameBOS1{i,1})/4)):height(frameBOS1{i,1});
endsegment = horzcat(endsegment1,endsegment2);
midsegment = not(ismember(1:height(frameBOS1{i,1}),endsegment));
frameBOSend1{i,:} = frameBOS1{i,1}(endsegment,:);
frameBOSmid1{i,:} = frameBOS1{i,1}(midsegment,:);
end
for i = 1:height(VariantIDPassed)
jointI = 0;
jointJ =0;
for j = 1:height(jointBOSnew2{i,1})-1
jointI(j) = jointBOSnew2{i,1}.ID(j);
jointJ(j) = jointBOSnew2{i,1}.ID(j+1);
end
lastframenumber{i,:} = max(frameBOS1{i,1}.("Frame ID"));
frameBOS2{i,:} = table((lastframenumber{i}+1:lastframenumber{i}+j)’,jointI’,jointJ’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
%eliminate special segment
frameBOS2{i,1}(median(1:height(frameBOS2{i,1})),:) = [];
%specified end and mid
endsegment1 = 1:round(height(frameBOS2{i,1})/4);
endsegment2 = (1+height(frameBOS2{i,1})-round(height(frameBOS2{i,1})/4)):height(frameBOS2{i,1});
endsegment = horzcat(endsegment1,endsegment2);
midsegment = not(ismember(1:height(frameBOS2{i,1}),endsegment));
frameBOSend2{i,:} = frameBOS2{i,1}(endsegment,:);
frameBOSmid2{i,:} = frameBOS2{i,1}(midsegment,:);
end
frameBOS = cellfun(@(varargin)vertcat(varargin{:}),frameBOS1,frameBOS2,’UniformOutput’,false);
frameBOSend = cellfun(@(varargin)vertcat(varargin{:}),frameBOSend1,frameBOSend2,’UniformOutput’,false);
frameBOSmid = cellfun(@(varargin)vertcat(varargin{:}),frameBOSmid1,frameBOSmid2,’UniformOutput’,false);
%% Name the Frame
% top special segment (TSS) (this phase is not automatic for different story)
for i = 1:height(VariantIDPassed)
jointTSS1{i,:} = sortrows(jointtopspecialsegment.("Joint Top Special Segment"){i,1}(ismember(jointtopspecialsegment.("Joint Top Special Segment"){i,1}.Z,H),:),2);
jointTSS2{i,:} = sortrows(jointtopspecialsegment.("Joint Top Special Segment"){i,1}(ismember(jointtopspecialsegment.("Joint Top Special Segment"){i,1}.Z,H*Ns),:),2);
%jointTSSnew{i,:} = vertcat(jointTSSnew1{i},jointTSSnew2{i});
startTSS1{i,:} = jointTSS1{i,1}.X(1);
endTSS1{i,:} = jointTSS1{i,1}.X(height(jointTSS1{i,1}));
jointTSS1{i,1}.ID(1) = jointTOSnew1{i,1}.ID(ismember(jointTOSnew1{i,1}.X,startTSS1{i,1}));
endhi guys, i dont know why this error happened to me. I already check the variable and i think it is already rigth.
Here is my code :
clear;
clc;
% Model Parameter
H = 5;
L = 15;
Ns = 2;
Nb = 1;
PortalHeight = H;
Bayspan = L;
NumberStory = Ns;
NumberBay = Nb;
% Variable1
h = [0.8,1.00,1.20,1.40,1.6,1.80];
% Variable2
Lss = [2.00,2.40,2.80,3.20,3.60,4.00];
% Variable3
Nss = [2,3,4];
% Definition variant
Var1HeightofTrussBeam = h;
Var2LengthSpecialSegment = Lss;
Var3NumberSpecialSegment = Nss;
ijk = 0;
for i = 1:numel(h)
for j = 1:numel(Lss)
for k = 1:numel(Nss)
ijk = ijk+1;
Variantmodel{ijk,:} = table(ijk,h(i),Lss(j),Nss(k),’VariableNames’,{‘VariantID’,’Height’,’Length’,’Number’});
%% Cooridinate Point Base(base)
Xbase{ijk,:} = L*(0:NumberBay);
Zbase{ijk,:} = repelem(0,1,length(Xbase{ijk,:}));
%% Column(col)
Xcolumn = L*(0:NumberBay);
Zcolumn = repelem(H*(1:NumberStory),1,length(Xcolumn));
Xbotbeam = L*(0:NumberBay);
Zbotbeam = repelem((H*(1:NumberStory)-h(i)),1,length(Xbotbeam));
idx = unique(Zbotbeam(:).’);
Zbottombeam{ijk,:} = idx;
% replicate [X] to be the same size as [Z] for plotting:
Xcol{ijk,:} = repmat([Xcolumn,Xbotbeam],1,NumberStory);
Zcol{ijk,:} = [Zcolumn,Zbotbeam];
%% Cooridinate Point Ordinary Segment (os)
% calculate span length of ordinary segment
Los = (L-Lss(j))/2;
Nos = Los/h(i);
Nos = round(Nos);
numberordinarysegment{ijk,:} = Nos;
los = Los/Nos;
totalspan{ijk,:} = los*Nos*2+Lss(j);
if totalspan{ijk,:} == 15.000
checkspan{ijk,:} = "correct span";
else
checkspan{ijk,:} = "span must be 15m";
end
% top and bottom joint of ordinary segment(os)
XTopOrdinarySegment = reshape([los*(1:Nos),(L/2+Lss(j)/2)+los*(0:Nos-1)].’+L*(0:(NumberBay-1)),1,[]);
XBottomOrdinarySegment = XTopOrdinarySegment;
ZTopOrdinarySegment = repelem(H*(1:NumberStory),1,2*Nos*NumberBay);
ZBottomOrdinarySegment = repelem(H*(1:NumberStory)-h(i),1,2*Nos*NumberBay);
% replicate [X] to be the same size as [Z] for plotting:
Xos{ijk,:} = repmat([XTopOrdinarySegment,XBottomOrdinarySegment],1,NumberStory);
Zos{ijk,:} = [ZTopOrdinarySegment,ZBottomOrdinarySegment];
%% Cooridinate Point Special Segment (ss)
% calculate span length of special segment
lss = Lss(j)/Nss(k);
% top and bottom joint of special segment(ss)
XTopSpecialSegment = reshape((lss*(0:Nss(k))+L/2-Lss(j)/2).’+L*(0:(NumberBay-1)),1,[]);
XBottomSpecialSegment = XTopSpecialSegment;
ZTopSpecialSegment = repelem(H*(1:NumberStory),1,length(XTopSpecialSegment));
ZBottomSpecialSegment = repelem(H*(1:NumberStory)-h(i),1,length(XBottomSpecialSegment));
% replicate [X] to be the same size as [Z] for plotting:
Xss{ijk,:} = repmat([XTopSpecialSegment,XBottomSpecialSegment],1,NumberStory);
Zss{ijk,:} = [ZTopSpecialSegment,ZBottomSpecialSegment];
%% Plot Cooridinate Point (X,Z)
X{ijk,:} = [Xbase{ijk,:},Xcol{ijk,:},Xos{ijk,:},Xss{ijk,:}];
Z{ijk,:} = [Zbase{ijk,:},Zcol{ijk,:},Zos{ijk,:},Zss{ijk,:}];
scatter(X{ijk,:},Z{ijk,:},’filled’),grid on
%check angle
tangent = (Lss(j)/Nss(k))/h(i);
anglespecialsegment(ijk) = atand(tangent);
%% Name the Joint
jointbase{ijk} = table((1:numel(Xbase{ijk,:}))’,Xbase{ijk,:}’,Zbase{ijk,:}’,’VariableNames’,{‘ID’,’X’,’Z’});
jointcolumn{ijk} = table((max(jointbase{ijk}.ID)+1:numel(Xcol{ijk,:})+max(jointbase{ijk}.ID))’,Xcol{ijk,:}’,Zcol{ijk,:}’,’VariableNames’,{‘ID’,’X’,’Z’});
jointordinarysegment{ijk} = table((max(jointcolumn{ijk}.ID)+1:numel(Xos{ijk,:})+max(jointcolumn{ijk}.ID))’,Xos{ijk,:}’,Zos{ijk,:}’,’VariableNames’,{‘ID’,’X’,’Z’});
jointtopordinarysegment{ijk} = jointordinarysegment{ijk}(ismember(jointordinarysegment{ijk}.Z,Zcolumn),:);
jointbottomordinarysegment{ijk} = jointordinarysegment{ijk}(ismember(jointordinarysegment{ijk}.Z,Zbotbeam),:);
jointspecialsegment{ijk} = table((max(jointbottomordinarysegment{ijk}.ID)+1:numel(Xss{ijk,:})+max(jointbottomordinarysegment{ijk}.ID))’,Xss{ijk,:}’,Zss{ijk,:}’,’VariableNames’,{‘ID’,’X’,’Z’});
jointtopspecialsegment{ijk} = jointspecialsegment{ijk}(ismember(jointspecialsegment{ijk}.Z,Zcolumn),:);
jointbottomspecialsegment{ijk} = jointspecialsegment{ijk}(ismember(jointspecialsegment{ijk}.Z,Zbotbeam),:);
end
end
end
% Verify Variants Which Passed the Angle Requirement
tablecheck = table((1:numel(anglespecialsegment))’,totalspan,anglespecialsegment’,’VariableNames’,{‘VariantID’,’Total Span’,’Angle’});
VariantIDPassed = tablecheck.VariantID(tablecheck.Angle>=30 & tablecheck.Angle<=60);
jointbase = table((1:numel(jointbase))’,jointbase’,’VariableNames’,{‘VariantID’,’Joint Base’});
jointbase = jointbase(ismember(jointbase.VariantID,VariantIDPassed),:);
jointcolumn = table((1:numel(jointcolumn))’,jointcolumn’,’VariableNames’,{‘VariantID’,’Joint Column’});
jointcolumn = jointcolumn(ismember(jointcolumn.VariantID,VariantIDPassed),:);
jointtopordinarysegment = table((1:numel(jointtopordinarysegment))’,jointtopordinarysegment’,’VariableNames’,{‘VariantID’,’Joint Top Ordinary Segment’});
jointtopordinarysegment = jointtopordinarysegment(ismember(jointtopordinarysegment.VariantID,VariantIDPassed),:);
jointbottomordinarysegment = table((1:numel(jointbottomordinarysegment))’,jointbottomordinarysegment’,’VariableNames’,{‘VariantID’,’Joint Bottom Ordinary Segment’});
jointbottomordinarysegment = jointbottomordinarysegment(ismember(jointbottomordinarysegment.VariantID,VariantIDPassed),:);
jointtopspecialsegment = table((1:numel(jointtopspecialsegment))’,jointtopspecialsegment’,’VariableNames’,{‘VariantID’,’Joint Top Special Segment’});
jointtopspecialsegment = jointtopspecialsegment(ismember(jointtopspecialsegment.VariantID,VariantIDPassed),:);
jointbottomspecialsegment = table((1:numel(jointbottomspecialsegment))’,jointbottomspecialsegment’,’VariableNames’,{‘VariantID’,’Joint Bottom Special Segment’});
jointbottomspecialsegment = jointbottomspecialsegment(ismember(jointbottomspecialsegment.VariantID,VariantIDPassed),:);
Zbottombeam{ijk} = table((1:numel(Zbottombeam{ijk,:}))’,Zbottombeam{ijk,:}’,’VariableNames’,{‘VariantID’,’Z Bottom Beam’});
Zbottombeam = Zbottombeam(VariantIDPassed);
%% Name the Frame
% column
for i = 1:height(VariantIDPassed)
jointIcolumn = 0;
jointJcolumn = 0;
jointcolumnnew{i,:} = jointcolumn.("Joint Column"){i}(ismember(jointcolumn.("Joint Column"){i}.Z,jointtopordinarysegment.("Joint Top Ordinary Segment"){i}.Z),:);
jointcolumnnew{i,:} = vertcat(jointbase.("Joint Base"){i},jointcolumnnew{i});
for j = 1:height(jointcolumnnew{i,1})-2
jointIcolumn(j) = jointcolumnnew{i,1}.ID(j);
jointJcolumn(j) = jointcolumnnew{i,1}.ID(j+2);
end
framecolumn{i,:} = table((1:j)’,jointIcolumn’,jointJcolumn’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
end
%% Name the Frame
% top ordinary segment (TOS) (this phase is not automatic for different story)
for i = 1:height(VariantIDPassed)
endTOS{i,:} = jointcolumn.("Joint Column"){i}(ismember(jointcolumn.("Joint Column"){i}.Z,jointtopordinarysegment.("Joint Top Ordinary Segment"){i}.Z),:);
jointTOS{i,:} = vertcat(jointtopordinarysegment.("Joint Top Ordinary Segment"){i},endTOS{i});
jointTOSnew1{i,:} = sortrows(jointTOS{i}(ismember(jointTOS{i}.Z,H),:),2);
jointTOSnew2{i,:} = sortrows(jointTOS{i}(ismember(jointTOS{i}.Z,H*Ns),:),2);
jointTOSnew{i,:} = vertcat(jointTOSnew1{i},jointTOSnew2{i});
end
for i = 1:height(VariantIDPassed)
jointI = 0;
jointJ = 0;
for j = 1:height(jointTOSnew1{i,1})-1
jointI(j) = jointTOSnew1{i,1}.ID(j);
jointJ(j) = jointTOSnew1{i,1}.ID(j+1);
end
lastframenumber{i,:} = max(framecolumn{i,1}.("Frame ID"));
frameTOS1{i,:} = table((lastframenumber{i}+1:lastframenumber{i}+j)’,jointI’,jointJ’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
%take special segment
frameTSB1{i,:} = frameTOS1{i,1}(median(1:height(frameTOS1{i,1})),:);
%eliminate special segment
frameTOS1{i,1}(median(1:height(frameTOS1{i,1})),:) = [];
%specified end and mid
endsegment1 = 1:round(height(frameTOS1{i,1})/4);
endsegment2 = (1+height(frameTOS1{i,1})-round(height(frameTOS1{i,1})/4)):height(frameTOS1{i,1});
endsegment = horzcat(endsegment1,endsegment2);
midsegment = not(ismember(1:height(frameTOS1{i,1}),endsegment));
frameTOSend1{i,:} = frameTOS1{i,1}(endsegment,:);
frameTOSmid1{i,:} = frameTOS1{i,1}(midsegment,:);
end
for i = 1:height(VariantIDPassed)
jointI = 0;
jointJ = 0;
for j = 1:height(jointTOSnew2{i,1})-1
jointI(j) = jointTOSnew2{i,1}.ID(j);
jointJ(j) = jointTOSnew2{i,1}.ID(j+1);
end
lastframenumber{i,:} = max(frameTOS1{i,1}.("Frame ID"));
frameTOS2{i,:} = table((lastframenumber{i}+1:lastframenumber{i}+j)’,jointI’,jointJ’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
%eliminate special segment
frameTOS2{i,1}(median(1:height(frameTOS2{i,1})),:) = [];
%specified end and mid
endsegment1 = 1:round(height(frameTOS2{i,1})/4);
endsegment2 = (1+height(frameTOS2{i,1})-round(height(frameTOS2{i,1})/4)):height(frameTOS2{i,1});
endsegment = horzcat(endsegment1,endsegment2);
midsegment = not(ismember(1:height(frameTOS2{i,1}),endsegment));
frameTOSend2{i,:} = frameTOS2{i,1}(endsegment,:);
frameTOSmid2{i,:} = frameTOS2{i,1}(midsegment,:);
end
frameTOS = cellfun(@(varargin)vertcat(varargin{:}),frameTOS1,frameTOS2,’UniformOutput’,false);
frameTOSend = cellfun(@(varargin)vertcat(varargin{:}),frameTOSend1,frameTOSend2,’UniformOutput’,false);
frameTOSmid = cellfun(@(varargin)vertcat(varargin{:}),frameTOSmid1,frameTOSmid2,’UniformOutput’,false);
%% Name the Frame
% bottom ordinary segment (BOS) (this phase is not automatic for different story)
for i = 1:height(VariantIDPassed)
endBOS{i,:} = jointcolumn.("Joint Column"){i}(ismember(jointcolumn.("Joint Column"){i}.Z,jointbottomordinarysegment.("Joint Bottom Ordinary Segment"){i}.Z),:);
jointBOS{i,:} = vertcat(jointbottomordinarysegment.("Joint Bottom Ordinary Segment"){i},endBOS{i});
jointBOSnew1{i,:} = sortrows(jointBOS{i}(ismember(jointBOS{i}.Z,Zbottombeam{i}(1)),:),2);
jointBOSnew2{i,:} = sortrows(jointBOS{i}(ismember(jointBOS{i}.Z,Zbottombeam{i}(2)),:),2);
jointBOSnew{i,:} = vertcat(jointBOSnew1{i},jointBOSnew2{i});
end
for i = 1:height(VariantIDPassed)
jointI = 0;
jointJ = 0;
for j = 1:height(jointBOSnew1{i,1})-1
jointI(j) = jointBOSnew1{i,1}.ID(j);
jointJ(j) = jointBOSnew1{i,1}.ID(j+1);
end
lastframenumber{i,:} = max(frameTOS{i,1}.("Frame ID"));
frameBOS1{i,:} = table((lastframenumber{i}+1:lastframenumber{i}+j)’,jointI’,jointJ’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
%take special segment
frameBSB1{i,:} = frameBOS1{i,1}(median(1:height(frameBOS1{i,1})),:);
%eliminate special segment
frameBOS1{i,1}(median(1:height(frameBOS1{i,1})),:) = [];
%specified end and mid
endsegment1 = 1:round(height(frameBOS1{i,1})/4);
endsegment2 = (1+height(frameBOS1{i,1})-round(height(frameBOS1{i,1})/4)):height(frameBOS1{i,1});
endsegment = horzcat(endsegment1,endsegment2);
midsegment = not(ismember(1:height(frameBOS1{i,1}),endsegment));
frameBOSend1{i,:} = frameBOS1{i,1}(endsegment,:);
frameBOSmid1{i,:} = frameBOS1{i,1}(midsegment,:);
end
for i = 1:height(VariantIDPassed)
jointI = 0;
jointJ =0;
for j = 1:height(jointBOSnew2{i,1})-1
jointI(j) = jointBOSnew2{i,1}.ID(j);
jointJ(j) = jointBOSnew2{i,1}.ID(j+1);
end
lastframenumber{i,:} = max(frameBOS1{i,1}.("Frame ID"));
frameBOS2{i,:} = table((lastframenumber{i}+1:lastframenumber{i}+j)’,jointI’,jointJ’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
%eliminate special segment
frameBOS2{i,1}(median(1:height(frameBOS2{i,1})),:) = [];
%specified end and mid
endsegment1 = 1:round(height(frameBOS2{i,1})/4);
endsegment2 = (1+height(frameBOS2{i,1})-round(height(frameBOS2{i,1})/4)):height(frameBOS2{i,1});
endsegment = horzcat(endsegment1,endsegment2);
midsegment = not(ismember(1:height(frameBOS2{i,1}),endsegment));
frameBOSend2{i,:} = frameBOS2{i,1}(endsegment,:);
frameBOSmid2{i,:} = frameBOS2{i,1}(midsegment,:);
end
frameBOS = cellfun(@(varargin)vertcat(varargin{:}),frameBOS1,frameBOS2,’UniformOutput’,false);
frameBOSend = cellfun(@(varargin)vertcat(varargin{:}),frameBOSend1,frameBOSend2,’UniformOutput’,false);
frameBOSmid = cellfun(@(varargin)vertcat(varargin{:}),frameBOSmid1,frameBOSmid2,’UniformOutput’,false);
%% Name the Frame
% top special segment (TSS) (this phase is not automatic for different story)
for i = 1:height(VariantIDPassed)
jointTSS1{i,:} = sortrows(jointtopspecialsegment.("Joint Top Special Segment"){i,1}(ismember(jointtopspecialsegment.("Joint Top Special Segment"){i,1}.Z,H),:),2);
jointTSS2{i,:} = sortrows(jointtopspecialsegment.("Joint Top Special Segment"){i,1}(ismember(jointtopspecialsegment.("Joint Top Special Segment"){i,1}.Z,H*Ns),:),2);
%jointTSSnew{i,:} = vertcat(jointTSSnew1{i},jointTSSnew2{i});
startTSS1{i,:} = jointTSS1{i,1}.X(1);
endTSS1{i,:} = jointTSS1{i,1}.X(height(jointTSS1{i,1}));
jointTSS1{i,1}.ID(1) = jointTOSnew1{i,1}.ID(ismember(jointTOSnew1{i,1}.X,startTSS1{i,1}));
end hi guys, i dont know why this error happened to me. I already check the variable and i think it is already rigth.
Here is my code :
clear;
clc;
% Model Parameter
H = 5;
L = 15;
Ns = 2;
Nb = 1;
PortalHeight = H;
Bayspan = L;
NumberStory = Ns;
NumberBay = Nb;
% Variable1
h = [0.8,1.00,1.20,1.40,1.6,1.80];
% Variable2
Lss = [2.00,2.40,2.80,3.20,3.60,4.00];
% Variable3
Nss = [2,3,4];
% Definition variant
Var1HeightofTrussBeam = h;
Var2LengthSpecialSegment = Lss;
Var3NumberSpecialSegment = Nss;
ijk = 0;
for i = 1:numel(h)
for j = 1:numel(Lss)
for k = 1:numel(Nss)
ijk = ijk+1;
Variantmodel{ijk,:} = table(ijk,h(i),Lss(j),Nss(k),’VariableNames’,{‘VariantID’,’Height’,’Length’,’Number’});
%% Cooridinate Point Base(base)
Xbase{ijk,:} = L*(0:NumberBay);
Zbase{ijk,:} = repelem(0,1,length(Xbase{ijk,:}));
%% Column(col)
Xcolumn = L*(0:NumberBay);
Zcolumn = repelem(H*(1:NumberStory),1,length(Xcolumn));
Xbotbeam = L*(0:NumberBay);
Zbotbeam = repelem((H*(1:NumberStory)-h(i)),1,length(Xbotbeam));
idx = unique(Zbotbeam(:).’);
Zbottombeam{ijk,:} = idx;
% replicate [X] to be the same size as [Z] for plotting:
Xcol{ijk,:} = repmat([Xcolumn,Xbotbeam],1,NumberStory);
Zcol{ijk,:} = [Zcolumn,Zbotbeam];
%% Cooridinate Point Ordinary Segment (os)
% calculate span length of ordinary segment
Los = (L-Lss(j))/2;
Nos = Los/h(i);
Nos = round(Nos);
numberordinarysegment{ijk,:} = Nos;
los = Los/Nos;
totalspan{ijk,:} = los*Nos*2+Lss(j);
if totalspan{ijk,:} == 15.000
checkspan{ijk,:} = "correct span";
else
checkspan{ijk,:} = "span must be 15m";
end
% top and bottom joint of ordinary segment(os)
XTopOrdinarySegment = reshape([los*(1:Nos),(L/2+Lss(j)/2)+los*(0:Nos-1)].’+L*(0:(NumberBay-1)),1,[]);
XBottomOrdinarySegment = XTopOrdinarySegment;
ZTopOrdinarySegment = repelem(H*(1:NumberStory),1,2*Nos*NumberBay);
ZBottomOrdinarySegment = repelem(H*(1:NumberStory)-h(i),1,2*Nos*NumberBay);
% replicate [X] to be the same size as [Z] for plotting:
Xos{ijk,:} = repmat([XTopOrdinarySegment,XBottomOrdinarySegment],1,NumberStory);
Zos{ijk,:} = [ZTopOrdinarySegment,ZBottomOrdinarySegment];
%% Cooridinate Point Special Segment (ss)
% calculate span length of special segment
lss = Lss(j)/Nss(k);
% top and bottom joint of special segment(ss)
XTopSpecialSegment = reshape((lss*(0:Nss(k))+L/2-Lss(j)/2).’+L*(0:(NumberBay-1)),1,[]);
XBottomSpecialSegment = XTopSpecialSegment;
ZTopSpecialSegment = repelem(H*(1:NumberStory),1,length(XTopSpecialSegment));
ZBottomSpecialSegment = repelem(H*(1:NumberStory)-h(i),1,length(XBottomSpecialSegment));
% replicate [X] to be the same size as [Z] for plotting:
Xss{ijk,:} = repmat([XTopSpecialSegment,XBottomSpecialSegment],1,NumberStory);
Zss{ijk,:} = [ZTopSpecialSegment,ZBottomSpecialSegment];
%% Plot Cooridinate Point (X,Z)
X{ijk,:} = [Xbase{ijk,:},Xcol{ijk,:},Xos{ijk,:},Xss{ijk,:}];
Z{ijk,:} = [Zbase{ijk,:},Zcol{ijk,:},Zos{ijk,:},Zss{ijk,:}];
scatter(X{ijk,:},Z{ijk,:},’filled’),grid on
%check angle
tangent = (Lss(j)/Nss(k))/h(i);
anglespecialsegment(ijk) = atand(tangent);
%% Name the Joint
jointbase{ijk} = table((1:numel(Xbase{ijk,:}))’,Xbase{ijk,:}’,Zbase{ijk,:}’,’VariableNames’,{‘ID’,’X’,’Z’});
jointcolumn{ijk} = table((max(jointbase{ijk}.ID)+1:numel(Xcol{ijk,:})+max(jointbase{ijk}.ID))’,Xcol{ijk,:}’,Zcol{ijk,:}’,’VariableNames’,{‘ID’,’X’,’Z’});
jointordinarysegment{ijk} = table((max(jointcolumn{ijk}.ID)+1:numel(Xos{ijk,:})+max(jointcolumn{ijk}.ID))’,Xos{ijk,:}’,Zos{ijk,:}’,’VariableNames’,{‘ID’,’X’,’Z’});
jointtopordinarysegment{ijk} = jointordinarysegment{ijk}(ismember(jointordinarysegment{ijk}.Z,Zcolumn),:);
jointbottomordinarysegment{ijk} = jointordinarysegment{ijk}(ismember(jointordinarysegment{ijk}.Z,Zbotbeam),:);
jointspecialsegment{ijk} = table((max(jointbottomordinarysegment{ijk}.ID)+1:numel(Xss{ijk,:})+max(jointbottomordinarysegment{ijk}.ID))’,Xss{ijk,:}’,Zss{ijk,:}’,’VariableNames’,{‘ID’,’X’,’Z’});
jointtopspecialsegment{ijk} = jointspecialsegment{ijk}(ismember(jointspecialsegment{ijk}.Z,Zcolumn),:);
jointbottomspecialsegment{ijk} = jointspecialsegment{ijk}(ismember(jointspecialsegment{ijk}.Z,Zbotbeam),:);
end
end
end
% Verify Variants Which Passed the Angle Requirement
tablecheck = table((1:numel(anglespecialsegment))’,totalspan,anglespecialsegment’,’VariableNames’,{‘VariantID’,’Total Span’,’Angle’});
VariantIDPassed = tablecheck.VariantID(tablecheck.Angle>=30 & tablecheck.Angle<=60);
jointbase = table((1:numel(jointbase))’,jointbase’,’VariableNames’,{‘VariantID’,’Joint Base’});
jointbase = jointbase(ismember(jointbase.VariantID,VariantIDPassed),:);
jointcolumn = table((1:numel(jointcolumn))’,jointcolumn’,’VariableNames’,{‘VariantID’,’Joint Column’});
jointcolumn = jointcolumn(ismember(jointcolumn.VariantID,VariantIDPassed),:);
jointtopordinarysegment = table((1:numel(jointtopordinarysegment))’,jointtopordinarysegment’,’VariableNames’,{‘VariantID’,’Joint Top Ordinary Segment’});
jointtopordinarysegment = jointtopordinarysegment(ismember(jointtopordinarysegment.VariantID,VariantIDPassed),:);
jointbottomordinarysegment = table((1:numel(jointbottomordinarysegment))’,jointbottomordinarysegment’,’VariableNames’,{‘VariantID’,’Joint Bottom Ordinary Segment’});
jointbottomordinarysegment = jointbottomordinarysegment(ismember(jointbottomordinarysegment.VariantID,VariantIDPassed),:);
jointtopspecialsegment = table((1:numel(jointtopspecialsegment))’,jointtopspecialsegment’,’VariableNames’,{‘VariantID’,’Joint Top Special Segment’});
jointtopspecialsegment = jointtopspecialsegment(ismember(jointtopspecialsegment.VariantID,VariantIDPassed),:);
jointbottomspecialsegment = table((1:numel(jointbottomspecialsegment))’,jointbottomspecialsegment’,’VariableNames’,{‘VariantID’,’Joint Bottom Special Segment’});
jointbottomspecialsegment = jointbottomspecialsegment(ismember(jointbottomspecialsegment.VariantID,VariantIDPassed),:);
Zbottombeam{ijk} = table((1:numel(Zbottombeam{ijk,:}))’,Zbottombeam{ijk,:}’,’VariableNames’,{‘VariantID’,’Z Bottom Beam’});
Zbottombeam = Zbottombeam(VariantIDPassed);
%% Name the Frame
% column
for i = 1:height(VariantIDPassed)
jointIcolumn = 0;
jointJcolumn = 0;
jointcolumnnew{i,:} = jointcolumn.("Joint Column"){i}(ismember(jointcolumn.("Joint Column"){i}.Z,jointtopordinarysegment.("Joint Top Ordinary Segment"){i}.Z),:);
jointcolumnnew{i,:} = vertcat(jointbase.("Joint Base"){i},jointcolumnnew{i});
for j = 1:height(jointcolumnnew{i,1})-2
jointIcolumn(j) = jointcolumnnew{i,1}.ID(j);
jointJcolumn(j) = jointcolumnnew{i,1}.ID(j+2);
end
framecolumn{i,:} = table((1:j)’,jointIcolumn’,jointJcolumn’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
end
%% Name the Frame
% top ordinary segment (TOS) (this phase is not automatic for different story)
for i = 1:height(VariantIDPassed)
endTOS{i,:} = jointcolumn.("Joint Column"){i}(ismember(jointcolumn.("Joint Column"){i}.Z,jointtopordinarysegment.("Joint Top Ordinary Segment"){i}.Z),:);
jointTOS{i,:} = vertcat(jointtopordinarysegment.("Joint Top Ordinary Segment"){i},endTOS{i});
jointTOSnew1{i,:} = sortrows(jointTOS{i}(ismember(jointTOS{i}.Z,H),:),2);
jointTOSnew2{i,:} = sortrows(jointTOS{i}(ismember(jointTOS{i}.Z,H*Ns),:),2);
jointTOSnew{i,:} = vertcat(jointTOSnew1{i},jointTOSnew2{i});
end
for i = 1:height(VariantIDPassed)
jointI = 0;
jointJ = 0;
for j = 1:height(jointTOSnew1{i,1})-1
jointI(j) = jointTOSnew1{i,1}.ID(j);
jointJ(j) = jointTOSnew1{i,1}.ID(j+1);
end
lastframenumber{i,:} = max(framecolumn{i,1}.("Frame ID"));
frameTOS1{i,:} = table((lastframenumber{i}+1:lastframenumber{i}+j)’,jointI’,jointJ’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
%take special segment
frameTSB1{i,:} = frameTOS1{i,1}(median(1:height(frameTOS1{i,1})),:);
%eliminate special segment
frameTOS1{i,1}(median(1:height(frameTOS1{i,1})),:) = [];
%specified end and mid
endsegment1 = 1:round(height(frameTOS1{i,1})/4);
endsegment2 = (1+height(frameTOS1{i,1})-round(height(frameTOS1{i,1})/4)):height(frameTOS1{i,1});
endsegment = horzcat(endsegment1,endsegment2);
midsegment = not(ismember(1:height(frameTOS1{i,1}),endsegment));
frameTOSend1{i,:} = frameTOS1{i,1}(endsegment,:);
frameTOSmid1{i,:} = frameTOS1{i,1}(midsegment,:);
end
for i = 1:height(VariantIDPassed)
jointI = 0;
jointJ = 0;
for j = 1:height(jointTOSnew2{i,1})-1
jointI(j) = jointTOSnew2{i,1}.ID(j);
jointJ(j) = jointTOSnew2{i,1}.ID(j+1);
end
lastframenumber{i,:} = max(frameTOS1{i,1}.("Frame ID"));
frameTOS2{i,:} = table((lastframenumber{i}+1:lastframenumber{i}+j)’,jointI’,jointJ’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
%eliminate special segment
frameTOS2{i,1}(median(1:height(frameTOS2{i,1})),:) = [];
%specified end and mid
endsegment1 = 1:round(height(frameTOS2{i,1})/4);
endsegment2 = (1+height(frameTOS2{i,1})-round(height(frameTOS2{i,1})/4)):height(frameTOS2{i,1});
endsegment = horzcat(endsegment1,endsegment2);
midsegment = not(ismember(1:height(frameTOS2{i,1}),endsegment));
frameTOSend2{i,:} = frameTOS2{i,1}(endsegment,:);
frameTOSmid2{i,:} = frameTOS2{i,1}(midsegment,:);
end
frameTOS = cellfun(@(varargin)vertcat(varargin{:}),frameTOS1,frameTOS2,’UniformOutput’,false);
frameTOSend = cellfun(@(varargin)vertcat(varargin{:}),frameTOSend1,frameTOSend2,’UniformOutput’,false);
frameTOSmid = cellfun(@(varargin)vertcat(varargin{:}),frameTOSmid1,frameTOSmid2,’UniformOutput’,false);
%% Name the Frame
% bottom ordinary segment (BOS) (this phase is not automatic for different story)
for i = 1:height(VariantIDPassed)
endBOS{i,:} = jointcolumn.("Joint Column"){i}(ismember(jointcolumn.("Joint Column"){i}.Z,jointbottomordinarysegment.("Joint Bottom Ordinary Segment"){i}.Z),:);
jointBOS{i,:} = vertcat(jointbottomordinarysegment.("Joint Bottom Ordinary Segment"){i},endBOS{i});
jointBOSnew1{i,:} = sortrows(jointBOS{i}(ismember(jointBOS{i}.Z,Zbottombeam{i}(1)),:),2);
jointBOSnew2{i,:} = sortrows(jointBOS{i}(ismember(jointBOS{i}.Z,Zbottombeam{i}(2)),:),2);
jointBOSnew{i,:} = vertcat(jointBOSnew1{i},jointBOSnew2{i});
end
for i = 1:height(VariantIDPassed)
jointI = 0;
jointJ = 0;
for j = 1:height(jointBOSnew1{i,1})-1
jointI(j) = jointBOSnew1{i,1}.ID(j);
jointJ(j) = jointBOSnew1{i,1}.ID(j+1);
end
lastframenumber{i,:} = max(frameTOS{i,1}.("Frame ID"));
frameBOS1{i,:} = table((lastframenumber{i}+1:lastframenumber{i}+j)’,jointI’,jointJ’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
%take special segment
frameBSB1{i,:} = frameBOS1{i,1}(median(1:height(frameBOS1{i,1})),:);
%eliminate special segment
frameBOS1{i,1}(median(1:height(frameBOS1{i,1})),:) = [];
%specified end and mid
endsegment1 = 1:round(height(frameBOS1{i,1})/4);
endsegment2 = (1+height(frameBOS1{i,1})-round(height(frameBOS1{i,1})/4)):height(frameBOS1{i,1});
endsegment = horzcat(endsegment1,endsegment2);
midsegment = not(ismember(1:height(frameBOS1{i,1}),endsegment));
frameBOSend1{i,:} = frameBOS1{i,1}(endsegment,:);
frameBOSmid1{i,:} = frameBOS1{i,1}(midsegment,:);
end
for i = 1:height(VariantIDPassed)
jointI = 0;
jointJ =0;
for j = 1:height(jointBOSnew2{i,1})-1
jointI(j) = jointBOSnew2{i,1}.ID(j);
jointJ(j) = jointBOSnew2{i,1}.ID(j+1);
end
lastframenumber{i,:} = max(frameBOS1{i,1}.("Frame ID"));
frameBOS2{i,:} = table((lastframenumber{i}+1:lastframenumber{i}+j)’,jointI’,jointJ’,’VariableNames’,{‘Frame ID’,’JointI’,’JointJ’});
%eliminate special segment
frameBOS2{i,1}(median(1:height(frameBOS2{i,1})),:) = [];
%specified end and mid
endsegment1 = 1:round(height(frameBOS2{i,1})/4);
endsegment2 = (1+height(frameBOS2{i,1})-round(height(frameBOS2{i,1})/4)):height(frameBOS2{i,1});
endsegment = horzcat(endsegment1,endsegment2);
midsegment = not(ismember(1:height(frameBOS2{i,1}),endsegment));
frameBOSend2{i,:} = frameBOS2{i,1}(endsegment,:);
frameBOSmid2{i,:} = frameBOS2{i,1}(midsegment,:);
end
frameBOS = cellfun(@(varargin)vertcat(varargin{:}),frameBOS1,frameBOS2,’UniformOutput’,false);
frameBOSend = cellfun(@(varargin)vertcat(varargin{:}),frameBOSend1,frameBOSend2,’UniformOutput’,false);
frameBOSmid = cellfun(@(varargin)vertcat(varargin{:}),frameBOSmid1,frameBOSmid2,’UniformOutput’,false);
%% Name the Frame
% top special segment (TSS) (this phase is not automatic for different story)
for i = 1:height(VariantIDPassed)
jointTSS1{i,:} = sortrows(jointtopspecialsegment.("Joint Top Special Segment"){i,1}(ismember(jointtopspecialsegment.("Joint Top Special Segment"){i,1}.Z,H),:),2);
jointTSS2{i,:} = sortrows(jointtopspecialsegment.("Joint Top Special Segment"){i,1}(ismember(jointtopspecialsegment.("Joint Top Special Segment"){i,1}.Z,H*Ns),:),2);
%jointTSSnew{i,:} = vertcat(jointTSSnew1{i},jointTSSnew2{i});
startTSS1{i,:} = jointTSS1{i,1}.X(1);
endTSS1{i,:} = jointTSS1{i,1}.X(height(jointTSS1{i,1}));
jointTSS1{i,1}.ID(1) = jointTOSnew1{i,1}.ID(ismember(jointTOSnew1{i,1}.X,startTSS1{i,1}));
end cell arrays MATLAB Answers — New Questions
The Impact of RedHat Linux 7 Extended Life Cycle Support on Azure Guest Patching Customers
Introduction: RedHat announced that the Linux 7 will enter the Extended Life Cycle Support (ELS) phase beginning from July 1, 2024.Initially slated for deprecation, RedHat is allowing customers to remain on RedHat Enterprise Linux 7.9 minor version with the ability to purchase an ELS Add-on for their subscriptions to receive security updates and technical support.
Impact on Organizations: Organizations that are still using RedHat Enterprise Linux or any variations of RedHat based images on major version 7 will need to upgrade to RedHat 8 or 9; or purchase an add-on for RedHat 7.9 to avoid any security or performance issues. From July 2024, RedHat will not support other versions within Linux 7 except 7.9 with the ELS Add-on for important and critical security updates. Customers that have enabled their VMs for Auto Guest Patching or leverage Azure Update Manager will see no action from Azure, as no new updates will be available to patch their machines. Customers updating their VM scale sets via Auto OS Image Upgrades will experience the same issue, as no new images will be available from RedHat after June 2024.
Without further security updates, organizations risk exposing their systems and data to potential security threats. Additionally, without software updates, organizations may experience performance issues or compatibility issues as newer hardware or software is released. It is important for organizations to plan for this migration to avoid any disruption to their business operations.
Potential Migration Options: Organizations have the following options for dealing with the transition of RedHat 7.9 to Extended Life Phase:
Customers can purchase the ELS Add-on for their subscriptions for RedHat 7.9
Customers can migrate their workloads to RedHat 8 or 9.
Conclusion: RedHat’s extension announcement for RedHat 7.9 is an important reminder for organizations to stay current with their software solutions to avoid any security or performance issues. Organizations using RedHat 7 based images will need to plan now to purchase an add-on for RedHat 7.9 or migrate to RedHat 8 or 9 to avoid any future disruption to their patching mechanisms. Customers can continue to leverage the Auto Guest Patching or Auto OS Image Upgrade capability after moving to a supported model from RedHat. You can follow the steps in the documentation to enable the auto patching on your assets to ensure they continue to remain secure.
Microsoft Tech Community – Latest Blogs –Read More
determining the data of a repeated period from a single file.
Dear Folks,
I have modified a code in matlab to make computation over a repeated period in a single file, in which the computations repeated over every 500 steps. Please, could you help me in modifing the script to take the average of the x between each two x’s for every 500 steps. This means that the x_average will have an (N-1) values.
clc; clear all;
FILE=’ENZUVH.csv’;
fid = fopen(FILE);
Data=textscan(fid, ‘%f %f %f %f %f %f %f’, ‘delimiter’, ‘,’);
fclose(fid);
xx=Data{1};
yy=Data{2};
zz=Data{3};
u=Data{4};
v=Data{5};
h=Data{6};
NN=length(Data{1});
%==================================================
step_size = 500; N=500;
x = zeros(N,2);
y = zeros(N,2);
cx = zeros(N,2);
sx = zeros(N,2);
UU = zeros(N,2);
VV = zeros(N,2);
hh = zeros(N,2);
segment_counter = 1;
for segment_start = 1:step_size:NN
for j = 1:N
for i = segment_start:min(segment_start+step_size-1, NN)
x(j,segment_counter) = xx(j);
y(j,segment_counter) = yy(j);
ele(j,segment_counter) = zz(j);
UU(j,segment_counter) = u(j);
VV(j,segment_counter) = v(j);
hh(j,segment_counter) = h(j);
end
end
segment_counter = segment_counter + 1;
endDear Folks,
I have modified a code in matlab to make computation over a repeated period in a single file, in which the computations repeated over every 500 steps. Please, could you help me in modifing the script to take the average of the x between each two x’s for every 500 steps. This means that the x_average will have an (N-1) values.
clc; clear all;
FILE=’ENZUVH.csv’;
fid = fopen(FILE);
Data=textscan(fid, ‘%f %f %f %f %f %f %f’, ‘delimiter’, ‘,’);
fclose(fid);
xx=Data{1};
yy=Data{2};
zz=Data{3};
u=Data{4};
v=Data{5};
h=Data{6};
NN=length(Data{1});
%==================================================
step_size = 500; N=500;
x = zeros(N,2);
y = zeros(N,2);
cx = zeros(N,2);
sx = zeros(N,2);
UU = zeros(N,2);
VV = zeros(N,2);
hh = zeros(N,2);
segment_counter = 1;
for segment_start = 1:step_size:NN
for j = 1:N
for i = segment_start:min(segment_start+step_size-1, NN)
x(j,segment_counter) = xx(j);
y(j,segment_counter) = yy(j);
ele(j,segment_counter) = zz(j);
UU(j,segment_counter) = u(j);
VV(j,segment_counter) = v(j);
hh(j,segment_counter) = h(j);
end
end
segment_counter = segment_counter + 1;
end Dear Folks,
I have modified a code in matlab to make computation over a repeated period in a single file, in which the computations repeated over every 500 steps. Please, could you help me in modifing the script to take the average of the x between each two x’s for every 500 steps. This means that the x_average will have an (N-1) values.
clc; clear all;
FILE=’ENZUVH.csv’;
fid = fopen(FILE);
Data=textscan(fid, ‘%f %f %f %f %f %f %f’, ‘delimiter’, ‘,’);
fclose(fid);
xx=Data{1};
yy=Data{2};
zz=Data{3};
u=Data{4};
v=Data{5};
h=Data{6};
NN=length(Data{1});
%==================================================
step_size = 500; N=500;
x = zeros(N,2);
y = zeros(N,2);
cx = zeros(N,2);
sx = zeros(N,2);
UU = zeros(N,2);
VV = zeros(N,2);
hh = zeros(N,2);
segment_counter = 1;
for segment_start = 1:step_size:NN
for j = 1:N
for i = segment_start:min(segment_start+step_size-1, NN)
x(j,segment_counter) = xx(j);
y(j,segment_counter) = yy(j);
ele(j,segment_counter) = zz(j);
UU(j,segment_counter) = u(j);
VV(j,segment_counter) = v(j);
hh(j,segment_counter) = h(j);
end
end
segment_counter = segment_counter + 1;
end numerical integration, data, manikanta aditya MATLAB Answers — New Questions
Adding downloadable files for end user to a form
Hello, I’m hoping to find a way to add a downloadable file (pdf, word, excel) to a form, for the end user to download for reference. I found an older post to add as a link in the question, unfortunately that didn’t work. It doesn’t accept the file types I need, it only accepts images. Could Power Automate help with this?
Hello, I’m hoping to find a way to add a downloadable file (pdf, word, excel) to a form, for the end user to download for reference. I found an older post to add as a link in the question, unfortunately that didn’t work. It doesn’t accept the file types I need, it only accepts images. Could Power Automate help with this? Read More
New Blog | A new era in data security with dynamic controls to manage data access and mitigate risks
By Erin Miyake
Recent research highlights a concerning trend: insider risks are surging. A majority of organizations encountered data breaches in the past year, with 63% of these breaches stemming from inadvertent or malicious insiders who had access to sensitive information. These internal threats pose a significant challenge to enterprise security.
Traditionally, organizations have struggled to handle the fragmented tooling landscape and one-size-fits-all controls they many times rely on to safeguard their data. However, this approach presents many challenges. The employment of multiple disconnected solutions complicates integration and efficacy of investigations, while standardized controls may either hinder legitimate business operations with their stringency or increase the risk of data breaches with looser restrictions. Striking the right balance is crucial. Enterprises are now seeking an automated approach that dynamically adjusts data security controls based on constantly evolving insider risk levels. Customers want a solution that adapts seamlessly, dialing up protection when needed and easing restrictions to enable legitimate business operations.
That’s where Adaptive Protection in Microsoft Purview comes in. Adaptive Protection helps you protect your organization’s data by integrating dynamic insider risk levels, determined by data related activities, with various policy engines to automatically move users in and out of policies as their risk levels change over time.
Back in March, we announced Adaptive Protection is now integrated with Conditional Access. This enables organizations to create Conditional Access polices to automatically add users to policies in response to insider risks levels.
Today, we are excited to announce the general availability of Adaptive Protection integration with Data Loss Prevention, which enables users to be automatically included in the scope of certain data loss policies based on insider risk levels.
Additionally, we are announcing the public preview of Adaptive Protection integration with Data Lifecycle Management, to protect against data sabotage scenarios by preserving deleted emails and files based on a user’s insider risk level.
Adaptive Protection integrated with Data Loss Prevention
Data security risk is dynamic and complex to manage in today’s modern workplace with various constantly changing factors, including types of content, the people who interact with data, and the activities surrounding the data. Often, attempting to find the sweet spot between data protection and productivity can be a tedious balancing act. If controls are too strict, it could overload the security teams with an overwhelming number of DLP alerts and block legitimate business activities. Security teams that prefer less restrictive controls to minimize impact on productivity may leave themselves susceptible to the risk of data loss. And finetuning broad and static policies can often become a never-ending project that overwhelms security teams.
Leveraging Adaptive Protection and a user’s insider risk levels, Microsoft Purview DLP can automatically apply the right level of preventative controls as configured by admins – such as block, block with override, or audit with a warning. Admins, who are granted access to change, create, update and/or delete policies, can create more sophisticated and adaptive DLP policies across Exchange, Teams, and endpoints. For example, with Adaptive Protection, DLP can allow users in the minor or moderate risk level to receive policy tips for handling sensitive data, influencing positive behavior changes over time to reduce organizational data risks. For users in the elevated risk level, admins can use the stricter protection controls, such as blocking users from saving or sharing sensitive data, to minimize the impact of potential data incidents. By integrating Adaptive Protection with Data Loss Prevention, you can implement scalable, intelligent, and adaptable DLP policies without significant manual overhead and policy fine tuning.
Read the full post here: A new era in data security with dynamic controls to manage data access and mitigate risks
By Erin Miyake
Recent research highlights a concerning trend: insider risks are surging. A majority of organizations encountered data breaches in the past year, with 63% of these breaches stemming from inadvertent or malicious insiders who had access to sensitive information. These internal threats pose a significant challenge to enterprise security.
Traditionally, organizations have struggled to handle the fragmented tooling landscape and one-size-fits-all controls they many times rely on to safeguard their data. However, this approach presents many challenges. The employment of multiple disconnected solutions complicates integration and efficacy of investigations, while standardized controls may either hinder legitimate business operations with their stringency or increase the risk of data breaches with looser restrictions. Striking the right balance is crucial. Enterprises are now seeking an automated approach that dynamically adjusts data security controls based on constantly evolving insider risk levels. Customers want a solution that adapts seamlessly, dialing up protection when needed and easing restrictions to enable legitimate business operations.
That’s where Adaptive Protection in Microsoft Purview comes in. Adaptive Protection helps you protect your organization’s data by integrating dynamic insider risk levels, determined by data related activities, with various policy engines to automatically move users in and out of policies as their risk levels change over time.
Back in March, we announced Adaptive Protection is now integrated with Conditional Access. This enables organizations to create Conditional Access polices to automatically add users to policies in response to insider risks levels.
Today, we are excited to announce the general availability of Adaptive Protection integration with Data Loss Prevention, which enables users to be automatically included in the scope of certain data loss policies based on insider risk levels.
Additionally, we are announcing the public preview of Adaptive Protection integration with Data Lifecycle Management, to protect against data sabotage scenarios by preserving deleted emails and files based on a user’s insider risk level.
Adaptive Protection integrated with Data Loss Prevention
Data security risk is dynamic and complex to manage in today’s modern workplace with various constantly changing factors, including types of content, the people who interact with data, and the activities surrounding the data. Often, attempting to find the sweet spot between data protection and productivity can be a tedious balancing act. If controls are too strict, it could overload the security teams with an overwhelming number of DLP alerts and block legitimate business activities. Security teams that prefer less restrictive controls to minimize impact on productivity may leave themselves susceptible to the risk of data loss. And finetuning broad and static policies can often become a never-ending project that overwhelms security teams.
Leveraging Adaptive Protection and a user’s insider risk levels, Microsoft Purview DLP can automatically apply the right level of preventative controls as configured by admins – such as block, block with override, or audit with a warning. Admins, who are granted access to change, create, update and/or delete policies, can create more sophisticated and adaptive DLP policies across Exchange, Teams, and endpoints. For example, with Adaptive Protection, DLP can allow users in the minor or moderate risk level to receive policy tips for handling sensitive data, influencing positive behavior changes over time to reduce organizational data risks. For users in the elevated risk level, admins can use the stricter protection controls, such as blocking users from saving or sharing sensitive data, to minimize the impact of potential data incidents. By integrating Adaptive Protection with Data Loss Prevention, you can implement scalable, intelligent, and adaptable DLP policies without significant manual overhead and policy fine tuning.
Figure 1: Configure a DLP policy with ‘insider risk level’ in Adaptive Protection
Read the full post here: A new era in data security with dynamic controls to manage data access and mitigate risks Read More
MDE Linux – RHEL 7.x – March-2024 Build: 101.24022.0001 | Release version: 30.124022.0001.0
Anyone experiencing high CPU and high memory loads when using the following MDE Linux build:
March-2024 Build: 101.24022.0001 | Release version: 30.124022.0001.0
We have noticed 35x RHEL 7.9 application servers that upgraded from March-2024 Build: 101.24012.0001 | Release version: 30.124012.0001.0 |to| March-2024 Build: 101.24022.0001 | Release version: 30.124022.0001.0 experiencing high CPU and high memory loads after 24-36 hours. A quick fix has been to downgrade to the 101.24022.0001 version.
We have engaged MS Support. However, we are all stumped on the root cause and were curious if anyone else has experienced any issues with the current MDE Linux build.
Anyone experiencing high CPU and high memory loads when using the following MDE Linux build:March-2024 Build: 101.24022.0001 | Release version: 30.124022.0001.0 We have noticed 35x RHEL 7.9 application servers that upgraded from March-2024 Build: 101.24012.0001 | Release version: 30.124012.0001.0 |to| March-2024 Build: 101.24022.0001 | Release version: 30.124022.0001.0 experiencing high CPU and high memory loads after 24-36 hours. A quick fix has been to downgrade to the 101.24022.0001 version. We have engaged MS Support. However, we are all stumped on the root cause and were curious if anyone else has experienced any issues with the current MDE Linux build. Read More
Safari – BYOD – iOS Mobile Device
Hello all,
How does an iPhone manage Safari web browser?
With Android you can have let say Chrome on the personal area and in the work area.
But with Apple iOS managing the home screen different, can I deploy Safari with the company portal and have two version on the device?
Thanks
Hello all, How does an iPhone manage Safari web browser? With Android you can have let say Chrome on the personal area and in the work area. But with Apple iOS managing the home screen different, can I deploy Safari with the company portal and have two version on the device? Thanks Read More
Tunnel EAP-Teap
Hello Guys,
I am somehow at a lost here. We have successfully implement Tunnel Teap into a test machine and we want to deploy it into our environment. I have downloaded the .xml wifi profile for the device and since EAP-TEAP is not yet integrated in the configuration policy in Intune, I have uploaded the xml file. I am running into a migration error.
I am no sure where to go from there.
Did anyone implemented TEAP configuration.
Hello Guys,I am somehow at a lost here. We have successfully implement Tunnel Teap into a test machine and we want to deploy it into our environment. I have downloaded the .xml wifi profile for the device and since EAP-TEAP is not yet integrated in the configuration policy in Intune, I have uploaded the xml file. I am running into a migration error. I am no sure where to go from there. Did anyone implemented TEAP configuration. Read More
What to Do When Getting QuickBooks Display Issues
QuickBooks is a comprehensive accounting software used by businesses of all sizes to manage finances efficiently. However, users may encounter display issues while working with QuickBooks, which can disrupt productivity and cause frustration. In this guide, we’ll explore what QuickBooks display issues are, their potential causes, and effective solutions to resolve them.
What are QuickBooks Display Issues?
QuickBooks display issues refer to problems users experience with the visual appearance or layout of the QuickBooks interface. These issues may manifest as blurry fonts, distorted graphics, missing elements, or improper scaling, making it difficult to navigate and use the software effectively. Display issues can occur on both desktop and online versions of QuickBooks and may affect various components of the user interface, including forms, reports, and menus.
Reasons Behind QuickBooks Display Issues:
Several factors can contribute to QuickBooks display issues, ranging from software conflicts to hardware limitations. Common reasons behind these issues include:
Graphics Driver Problems: Outdated or incompatible graphics drivers can lead to display issues in QuickBooks. Graphics drivers are responsible for rendering images and graphics on the screen, and issues with these drivers can cause blurry fonts, distorted graphics, or other visual anomalies within QuickBooks.
Screen Resolution and Scaling Settings: Incorrect screen resolution or scaling settings on the computer can affect the appearance of QuickBooks. If the screen resolution is too low or the scaling settings are not optimized for the display, text and graphics within QuickBooks may appear stretched, pixelated, or improperly sized.
Compatibility Issues: QuickBooks may encounter compatibility issues with certain operating systems, graphics cards, or other hardware components, leading to display problems. These issues may arise if QuickBooks is not fully compatible with the user’s hardware configuration or if there are conflicts with other software installed on the computer.
Software Updates: Updates to QuickBooks or the operating system may introduce bugs or compatibility issues that affect the display of the software. Issues with recent updates can cause display anomalies within QuickBooks, requiring users to troubleshoot and resolve the issues to restore normal functionality.
Data File Corruption: Corruption or damage to the QuickBooks company file or data files can cause display issues within the software. If the company file is corrupted, users may experience errors or anomalies when accessing forms, reports, or other elements within QuickBooks.
Solutions to Resolve QuickBooks Display Issues:
Resolving QuickBooks display issues requires a systematic approach to identify and address the underlying causes effectively. Below are some practical solutions to troubleshoot and fix these issues:
Update Graphics Drivers: Ensure that your computer’s graphics drivers are up-to-date by visiting the website of your graphics card manufacturer and downloading the latest drivers for your hardware. Installing updated graphics drivers can resolve compatibility issues and improve the performance of QuickBooks.
Adjust Screen Resolution and Scaling Settings: Optimize the screen resolution and scaling settings on your computer to ensure that they are compatible with QuickBooks. Access the display settings in your operating system and adjust the resolution and scaling options to the recommended settings for your display.
Check QuickBooks Compatibility: Verify that your version of QuickBooks is compatible with your operating system and hardware configuration. Visit the Intuit website to check the system requirements for your version of QuickBooks and ensure that your computer meets the minimum specifications.
Install Software Updates: Keep QuickBooks and your operating system up-to-date by installing any available updates. Check for updates regularly and install them as soon as they become available to ensure that you have the latest bug fixes and compatibility improvements.
Rebuild QuickBooks Data: If display issues persist despite updating the software and drivers, try rebuilding your QuickBooks data to resolve any corruption or damage. Open QuickBooks and navigate to the “File” menu, then select “Utilities” and “Rebuild Data.” Follow the prompts to rebuild your company file and resolve any data integrity issues.
Reset QuickBooks Preferences: Resetting QuickBooks preferences can resolve display issues caused by corrupted preference files. To reset preferences, press and hold the “Ctrl” key while double-clicking the QuickBooks icon to open the software. Keep the “Ctrl” key held down until you see the “No Company Open” window, then select “Reset Preferences” from the dropdown menu.
Conclusion:
QuickBooks display issues can be frustrating for users, impacting productivity and hindering the efficient use of the software. However, by understanding the potential causes and implementing the appropriate solutions outlined in this guide, you can effectively troubleshoot and resolve these issues. Remember to stay proactive by keeping your software and drivers up-to-date, adjusting display settings as needed, and following best practices for data management within QuickBooks. With persistence and the right strategies, you can overcome QuickBooks display issues and continue using the software with confidence.
Related Searches:
QuickBooks 2018 display issues
QuickBooks 2019 Display Issues
QuickBooks 2020 display issues
QuickBooks Desktop Display Issues
QuickBooks Display issues
QuickBooks Display Issues Windows 10
QuickBooks Fonts too Small
QuickBooks Icons too Small Windows 10
QuickBooks Online Display Issues
QuickBooks page cannot be displayed
QuickBooks payments page can’t be displayed
QuickBooks payments page cannot be displayed
QuickBooks screen resolution issues
QuickBooks window not visible
QuickBooks windows not visible
QuickBooks is a comprehensive accounting software used by businesses of all sizes to manage finances efficiently. However, users may encounter display issues while working with QuickBooks, which can disrupt productivity and cause frustration. In this guide, we’ll explore what QuickBooks display issues are, their potential causes, and effective solutions to resolve them. What are QuickBooks Display Issues? QuickBooks display issues refer to problems users experience with the visual appearance or layout of the QuickBooks interface. These issues may manifest as blurry fonts, distorted graphics, missing elements, or improper scaling, making it difficult to navigate and use the software effectively. Display issues can occur on both desktop and online versions of QuickBooks and may affect various components of the user interface, including forms, reports, and menus. Reasons Behind QuickBooks Display Issues: Several factors can contribute to QuickBooks display issues, ranging from software conflicts to hardware limitations. Common reasons behind these issues include:Graphics Driver Problems: Outdated or incompatible graphics drivers can lead to display issues in QuickBooks. Graphics drivers are responsible for rendering images and graphics on the screen, and issues with these drivers can cause blurry fonts, distorted graphics, or other visual anomalies within QuickBooks.Screen Resolution and Scaling Settings: Incorrect screen resolution or scaling settings on the computer can affect the appearance of QuickBooks. If the screen resolution is too low or the scaling settings are not optimized for the display, text and graphics within QuickBooks may appear stretched, pixelated, or improperly sized.Compatibility Issues: QuickBooks may encounter compatibility issues with certain operating systems, graphics cards, or other hardware components, leading to display problems. These issues may arise if QuickBooks is not fully compatible with the user’s hardware configuration or if there are conflicts with other software installed on the computer.Software Updates: Updates to QuickBooks or the operating system may introduce bugs or compatibility issues that affect the display of the software. Issues with recent updates can cause display anomalies within QuickBooks, requiring users to troubleshoot and resolve the issues to restore normal functionality.Data File Corruption: Corruption or damage to the QuickBooks company file or data files can cause display issues within the software. If the company file is corrupted, users may experience errors or anomalies when accessing forms, reports, or other elements within QuickBooks.Solutions to Resolve QuickBooks Display Issues: Resolving QuickBooks display issues requires a systematic approach to identify and address the underlying causes effectively. Below are some practical solutions to troubleshoot and fix these issues:Update Graphics Drivers: Ensure that your computer’s graphics drivers are up-to-date by visiting the website of your graphics card manufacturer and downloading the latest drivers for your hardware. Installing updated graphics drivers can resolve compatibility issues and improve the performance of QuickBooks.Adjust Screen Resolution and Scaling Settings: Optimize the screen resolution and scaling settings on your computer to ensure that they are compatible with QuickBooks. Access the display settings in your operating system and adjust the resolution and scaling options to the recommended settings for your display.Check QuickBooks Compatibility: Verify that your version of QuickBooks is compatible with your operating system and hardware configuration. Visit the Intuit website to check the system requirements for your version of QuickBooks and ensure that your computer meets the minimum specifications.Install Software Updates: Keep QuickBooks and your operating system up-to-date by installing any available updates. Check for updates regularly and install them as soon as they become available to ensure that you have the latest bug fixes and compatibility improvements.Rebuild QuickBooks Data: If display issues persist despite updating the software and drivers, try rebuilding your QuickBooks data to resolve any corruption or damage. Open QuickBooks and navigate to the “File” menu, then select “Utilities” and “Rebuild Data.” Follow the prompts to rebuild your company file and resolve any data integrity issues.Reset QuickBooks Preferences: Resetting QuickBooks preferences can resolve display issues caused by corrupted preference files. To reset preferences, press and hold the “Ctrl” key while double-clicking the QuickBooks icon to open the software. Keep the “Ctrl” key held down until you see the “No Company Open” window, then select “Reset Preferences” from the dropdown menu.Conclusion: QuickBooks display issues can be frustrating for users, impacting productivity and hindering the efficient use of the software. However, by understanding the potential causes and implementing the appropriate solutions outlined in this guide, you can effectively troubleshoot and resolve these issues. Remember to stay proactive by keeping your software and drivers up-to-date, adjusting display settings as needed, and following best practices for data management within QuickBooks. With persistence and the right strategies, you can overcome QuickBooks display issues and continue using the software with confidence. Related Searches:QuickBooks 2018 display issuesQuickBooks 2019 Display IssuesQuickBooks 2020 display issuesQuickBooks Desktop Display IssuesQuickBooks Display issuesQuickBooks Display Issues Windows 10QuickBooks Fonts too SmallQuickBooks Icons too Small Windows 10QuickBooks Online Display IssuesQuickBooks page cannot be displayedQuickBooks payments page can’t be displayedQuickBooks payments page cannot be displayedQuickBooks screen resolution issuesQuickBooks window not visibleQuickBooks windows not visible Read More
Sorting with matching
I need to match the 2 ranges to each other.
Find the cells on the right in the range on the left and put them in the right row.
This is best shown in the image:
I need to match the 2 ranges to each other.Find the cells on the right in the range on the left and put them in the right row.This is best shown in the image: Read More
Quarantine Mails not received with one of the recipient and another one recipient received
Email sent from one of the client domain received to one of our active domain but moved to quarantine as Spam Score is 1 but we have created rule to by pass emails coming from xyz to mxz domain but the email received to only one of the recipient instead it is marked to couple of recipients with same subject line
Email sent from one of the client domain received to one of our active domain but moved to quarantine as Spam Score is 1 but we have created rule to by pass emails coming from xyz to mxz domain but the email received to only one of the recipient instead it is marked to couple of recipients with same subject line Read More
How Do I Fix QuickBooks Payroll Error 30159 After Update?
QuickBooks Payroll is a valuable tool for businesses to manage employee compensation efficiently. However, users may encounter errors while using QuickBooks Payroll, such as QuickBooks Payroll Error 30159. This error can disrupt payroll processing and cause frustration for users. In this guide, we’ll delve into what QuickBooks Payroll Error 30159 is, its potential causes, and effective solutions to resolve it.
What is QuickBooks Payroll Error 30159?
QuickBooks Payroll Error 30159 is a common issue that occurs when users encounter problems while processing payroll within QuickBooks. This error is typically accompanied by an error message indicating that the payroll setup is incomplete or incorrect. QuickBooks may also prompt users to update their payroll tax tables or verify their payroll subscription status to resolve the error.
Reasons Behind QuickBooks Payroll Error 30159:
Understanding the underlying causes of QuickBooks Payroll Error 30159 is essential for effective troubleshooting. While the exact trigger may vary depending on the specific circumstances, common reasons for this error include:
Incomplete Payroll Setup: Incomplete or incorrect setup of payroll within QuickBooks can lead to Error 30159. This may include missing or incorrect payroll tax information, employee details, or payroll item settings. If the payroll setup is incomplete or inaccurate, QuickBooks may encounter issues when processing payroll and generate Error 30159 as a result.
Outdated Payroll Tax Tables: Failure to update payroll tax tables within QuickBooks can also trigger Error 30159. Payroll tax rates and regulations change periodically, and QuickBooks requires up-to-date tax tables to calculate payroll taxes accurately. If the payroll tax tables are outdated, QuickBooks may generate Error 30159 when attempting to process payroll.
Incorrect Payroll Service Key: Incorrect or invalid payroll service key in QuickBooks can cause Error 30159. The payroll service key is a unique identifier that connects QuickBooks to the user’s payroll subscription and enables payroll processing. If the service key is missing, expired, or entered incorrectly, QuickBooks may be unable to process payroll and generate Error 30159.
Issues with Payroll Subscription: Problems with the payroll subscription or billing status can also result in Error 30159. This may include expired or inactive payroll subscriptions, billing issues, or changes to the user’s payroll service plan. If QuickBooks detects an issue with the payroll subscription, it may prevent users from processing payroll and display Error 30159 as a warning.
Software Conflicts: Conflicts with other software installed on the computer can interfere with QuickBooks Payroll operations and trigger Error 30159. This may occur if third-party applications, antivirus software, or firewall settings conflict with QuickBooks processes, causing disruptions in payroll processing.
Solutions to Resolve QuickBooks Payroll Error 30159:
Resolving QuickBooks Payroll Error 30159 requires a systematic approach to address the underlying causes effectively. Below are some practical solutions to troubleshoot and fix this error:
Verify Payroll Setup: Review the payroll setup within QuickBooks to ensure that all required information is complete and accurate. Verify employee details, payroll tax information, payroll items, and other relevant settings to ensure that the payroll setup is configured correctly. Make any necessary adjustments or additions to resolve any discrepancies.
Update Payroll Tax Tables: Ensure that payroll tax tables in QuickBooks are up-to-date by downloading and installing the latest updates from the Intuit website. Navigate to the “Employees” menu, select “Get Payroll Updates,” and follow the prompts to download and install the latest payroll tax tables. Updating the tax tables can resolve errors related to outdated tax rates and regulations.
Verify Payroll Service Key: Check the payroll service key in QuickBooks to ensure that it is valid and entered correctly. Navigate to the “Employees” menu, select “My Payroll Service,” and then choose “Manage Service Key.” Verify that the service key displayed is correct and matches the one provided by Intuit. If necessary, update the service key to resolve any issues with Error 30159.
Check Payroll Subscription Status: Verify the status of your payroll subscription within QuickBooks to ensure that it is active and up-to-date. Navigate to the “Employees” menu, select “My Payroll Service,” and then choose “Account/Billing Information.” Verify that your subscription status is active and that there are no billing issues or payment discrepancies. If necessary, renew or update your payroll subscription to resolve Error 30159.
Disable Third-Party Software: Temporarily disable any third-party applications, antivirus software, or firewall settings that may be interfering with QuickBooks Payroll operations. Some software applications may conflict with QuickBooks processes, causing Error 30159. Disable these applications temporarily and attempt to process payroll again to see if the error persists.
Contact QuickBooks Support: If the above solutions fail to resolve QuickBooks Payroll Error 30159, contact QuickBooks support for further assistance. Provide detailed information about the error message, steps taken to troubleshoot, and your payroll setup and subscription status. QuickBooks support representatives can offer personalized guidance to help resolve the issue promptly.
Conclusion:
QuickBooks Payroll Error 30159 can be a frustrating obstacle for users attempting to process payroll within QuickBooks. However, by understanding the potential causes and implementing the appropriate solutions outlined in this guide, you can effectively troubleshoot and resolve this error. Remember to stay proactive by keeping your payroll setup and tax tables up-to-date, verifying your payroll subscription status, and seeking assistance from QuickBooks support if needed. With persistence and the right strategies, you can overcome QuickBooks Payroll Error 30159 and streamline your payroll processing with confidence.
QuickBooks Payroll is a valuable tool for businesses to manage employee compensation efficiently. However, users may encounter errors while using QuickBooks Payroll, such as QuickBooks Payroll Error 30159. This error can disrupt payroll processing and cause frustration for users. In this guide, we’ll delve into what QuickBooks Payroll Error 30159 is, its potential causes, and effective solutions to resolve it. What is QuickBooks Payroll Error 30159? QuickBooks Payroll Error 30159 is a common issue that occurs when users encounter problems while processing payroll within QuickBooks. This error is typically accompanied by an error message indicating that the payroll setup is incomplete or incorrect. QuickBooks may also prompt users to update their payroll tax tables or verify their payroll subscription status to resolve the error. Reasons Behind QuickBooks Payroll Error 30159: Understanding the underlying causes of QuickBooks Payroll Error 30159 is essential for effective troubleshooting. While the exact trigger may vary depending on the specific circumstances, common reasons for this error include:Incomplete Payroll Setup: Incomplete or incorrect setup of payroll within QuickBooks can lead to Error 30159. This may include missing or incorrect payroll tax information, employee details, or payroll item settings. If the payroll setup is incomplete or inaccurate, QuickBooks may encounter issues when processing payroll and generate Error 30159 as a result.Outdated Payroll Tax Tables: Failure to update payroll tax tables within QuickBooks can also trigger Error 30159. Payroll tax rates and regulations change periodically, and QuickBooks requires up-to-date tax tables to calculate payroll taxes accurately. If the payroll tax tables are outdated, QuickBooks may generate Error 30159 when attempting to process payroll.Incorrect Payroll Service Key: Incorrect or invalid payroll service key in QuickBooks can cause Error 30159. The payroll service key is a unique identifier that connects QuickBooks to the user’s payroll subscription and enables payroll processing. If the service key is missing, expired, or entered incorrectly, QuickBooks may be unable to process payroll and generate Error 30159.Issues with Payroll Subscription: Problems with the payroll subscription or billing status can also result in Error 30159. This may include expired or inactive payroll subscriptions, billing issues, or changes to the user’s payroll service plan. If QuickBooks detects an issue with the payroll subscription, it may prevent users from processing payroll and display Error 30159 as a warning.Software Conflicts: Conflicts with other software installed on the computer can interfere with QuickBooks Payroll operations and trigger Error 30159. This may occur if third-party applications, antivirus software, or firewall settings conflict with QuickBooks processes, causing disruptions in payroll processing.Solutions to Resolve QuickBooks Payroll Error 30159: Resolving QuickBooks Payroll Error 30159 requires a systematic approach to address the underlying causes effectively. Below are some practical solutions to troubleshoot and fix this error:Verify Payroll Setup: Review the payroll setup within QuickBooks to ensure that all required information is complete and accurate. Verify employee details, payroll tax information, payroll items, and other relevant settings to ensure that the payroll setup is configured correctly. Make any necessary adjustments or additions to resolve any discrepancies.Update Payroll Tax Tables: Ensure that payroll tax tables in QuickBooks are up-to-date by downloading and installing the latest updates from the Intuit website. Navigate to the “Employees” menu, select “Get Payroll Updates,” and follow the prompts to download and install the latest payroll tax tables. Updating the tax tables can resolve errors related to outdated tax rates and regulations.Verify Payroll Service Key: Check the payroll service key in QuickBooks to ensure that it is valid and entered correctly. Navigate to the “Employees” menu, select “My Payroll Service,” and then choose “Manage Service Key.” Verify that the service key displayed is correct and matches the one provided by Intuit. If necessary, update the service key to resolve any issues with Error 30159.Check Payroll Subscription Status: Verify the status of your payroll subscription within QuickBooks to ensure that it is active and up-to-date. Navigate to the “Employees” menu, select “My Payroll Service,” and then choose “Account/Billing Information.” Verify that your subscription status is active and that there are no billing issues or payment discrepancies. If necessary, renew or update your payroll subscription to resolve Error 30159.Disable Third-Party Software: Temporarily disable any third-party applications, antivirus software, or firewall settings that may be interfering with QuickBooks Payroll operations. Some software applications may conflict with QuickBooks processes, causing Error 30159. Disable these applications temporarily and attempt to process payroll again to see if the error persists.Contact QuickBooks Support: If the above solutions fail to resolve QuickBooks Payroll Error 30159, contact QuickBooks support for further assistance. Provide detailed information about the error message, steps taken to troubleshoot, and your payroll setup and subscription status. QuickBooks support representatives can offer personalized guidance to help resolve the issue promptly.Conclusion: QuickBooks Payroll Error 30159 can be a frustrating obstacle for users attempting to process payroll within QuickBooks. However, by understanding the potential causes and implementing the appropriate solutions outlined in this guide, you can effectively troubleshoot and resolve this error. Remember to stay proactive by keeping your payroll setup and tax tables up-to-date, verifying your payroll subscription status, and seeking assistance from QuickBooks support if needed. With persistence and the right strategies, you can overcome QuickBooks Payroll Error 30159 and streamline your payroll processing with confidence. Read More
Tech Talks Presents: Reinvent Enterprise Applications | May 9th
Join us on Thursday, May 9th at 8am PT as Nikesh Parekh GM Power Accelerator, Power Apps and Manas Maheshwari, Principal GPM presents Reinvent Enterprise Applications.
In this session we’ll learn how to drive enterprise-wide adoption of Power Platform with the GM of the Power Accelerator Team Nikesh Parekh.
Enterprise App Templates: Accelerate your Power Platform journey with enterprise app templates and SAP ERP Connector
SAP Integration: Opportunities with SAP and Power Platform include automating processes, surfacing SAP-connected apps, and transforming SAP processes with Copilot
Legacy App Migration: Migrate legacy applications such as InfoPath, Lotus Notes, and Access to Power Platform
Power Accelerator Program: The Power Accelerator Program provides significant investments to top new customers to work with SI Partners on app modernization and Power Platform adoption
We hope you’ll join us!
Call to Action:
Click on the link to save the calendar invite: https://aka.ms/TechTalksInvite
View past recordings (sign in required): https://aka.ms/TechTalksRecording
Get started with the adoption tools here
Join us on Thursday, May 9th at 8am PT as Nikesh Parekh GM Power Accelerator, Power Apps and Manas Maheshwari, Principal GPM presents Reinvent Enterprise Applications.
In this session we’ll learn how to drive enterprise-wide adoption of Power Platform with the GM of the Power Accelerator Team Nikesh Parekh.
Enterprise App Templates: Accelerate your Power Platform journey with enterprise app templates and SAP ERP Connector
SAP Integration: Opportunities with SAP and Power Platform include automating processes, surfacing SAP-connected apps, and transforming SAP processes with Copilot
Legacy App Migration: Migrate legacy applications such as InfoPath, Lotus Notes, and Access to Power Platform
Power Accelerator Program: The Power Accelerator Program provides significant investments to top new customers to work with SI Partners on app modernization and Power Platform adoption
We hope you’ll join us!
Call to Action:
Click on the link to save the calendar invite: https://aka.ms/TechTalksInvite
View past recordings (sign in required): https://aka.ms/TechTalksRecording
Get started with the adoption tools here Read More
How to update a tracker without any detections?
Hi,
I am using trackerTOMHT to track targets following the time sequence. Sometimes, the tracker will receive the detections and sometimes will not. I need to get the confirmed tracks at each time stamp. The following is an example of how to initialize and update a tracker with detections.
tracker = trackerTOMHT(‘FilterInitializationFcn’,@initcvkf, …
‘ConfirmationThreshold’,20, …
‘DeletionThreshold’,-7, …
‘MaxNumHypotheses’,10);
detections = {objectDetection(1,[10;0],’SensorIndex’,1, …
‘ObjectClassID’,5,’ObjectAttributes’,{struct(‘ID’,1)}); …
objectDetection(1,[0;10],’SensorIndex’,1, …
‘ObjectClassID’,2,’ObjectAttributes’,{struct(‘ID’,2)})};
time = 2;
[confirmed_tracks,~,~,~] = tracker(detections,time);
The problem is that, I didn’t find a way to update the tracker without any detection. So I can’t get the confirmed tracks of the tracker when there is no detection. For example, at time = 3, there is no detection. How can I get the value of the confirmed_tracks?Hi,
I am using trackerTOMHT to track targets following the time sequence. Sometimes, the tracker will receive the detections and sometimes will not. I need to get the confirmed tracks at each time stamp. The following is an example of how to initialize and update a tracker with detections.
tracker = trackerTOMHT(‘FilterInitializationFcn’,@initcvkf, …
‘ConfirmationThreshold’,20, …
‘DeletionThreshold’,-7, …
‘MaxNumHypotheses’,10);
detections = {objectDetection(1,[10;0],’SensorIndex’,1, …
‘ObjectClassID’,5,’ObjectAttributes’,{struct(‘ID’,1)}); …
objectDetection(1,[0;10],’SensorIndex’,1, …
‘ObjectClassID’,2,’ObjectAttributes’,{struct(‘ID’,2)})};
time = 2;
[confirmed_tracks,~,~,~] = tracker(detections,time);
The problem is that, I didn’t find a way to update the tracker without any detection. So I can’t get the confirmed tracks of the tracker when there is no detection. For example, at time = 3, there is no detection. How can I get the value of the confirmed_tracks? Hi,
I am using trackerTOMHT to track targets following the time sequence. Sometimes, the tracker will receive the detections and sometimes will not. I need to get the confirmed tracks at each time stamp. The following is an example of how to initialize and update a tracker with detections.
tracker = trackerTOMHT(‘FilterInitializationFcn’,@initcvkf, …
‘ConfirmationThreshold’,20, …
‘DeletionThreshold’,-7, …
‘MaxNumHypotheses’,10);
detections = {objectDetection(1,[10;0],’SensorIndex’,1, …
‘ObjectClassID’,5,’ObjectAttributes’,{struct(‘ID’,1)}); …
objectDetection(1,[0;10],’SensorIndex’,1, …
‘ObjectClassID’,2,’ObjectAttributes’,{struct(‘ID’,2)})};
time = 2;
[confirmed_tracks,~,~,~] = tracker(detections,time);
The problem is that, I didn’t find a way to update the tracker without any detection. So I can’t get the confirmed tracks of the tracker when there is no detection. For example, at time = 3, there is no detection. How can I get the value of the confirmed_tracks? tracker multi_object_tracking mot tomht, tracker MATLAB Answers — New Questions
Why my Simulink does not work on RAPID ACCELERATOR mode?
Why my Simulink does not work on RAPID ACCELERATOR mode?Why my Simulink does not work on RAPID ACCELERATOR mode? Why my Simulink does not work on RAPID ACCELERATOR mode? rapid accelerator MATLAB Answers — New Questions