function [fixeddofs2, freedofs2, F] = FEA_init_nonregular(nodes, fixeddofs, loadnid,vF) nodeNum = size(nodes, 1); % after remove, all dofs in orignal idx representation alldofs1 = [2 * nodes(:, 3) - 1, 2 * nodes(:, 3)]; [~, r1] = intersect(alldofs1(:, 1), fixeddofs); [~, r2] = intersect(alldofs1(:, 2), fixeddofs); fixeddofs2 = [2 * r1 - 1; 2 * r2]; alldofs2 = nodeNum * 2; freedofs2 = setdiff(1:alldofs2, fixeddofs2); [~, r1] = intersect(alldofs1(:, 1), loadnid); [~, r2] = intersect(alldofs1(:, 2), loadnid); loadnid2 = [2 * r1 - 1; 2 * r2]; F = sparse(loadnid2, 1, vF, alldofs2, 1); end