Hi coders! i'm facing a error. Error using contourf Z must be at least a 2x2 matrix.
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
clc;
clear all;
%-----Geometry,Number of simulations------%
d = 10;
N = 1000;
a11 = 250*(d/10);
a12= 100*(d/10);
%-----Mesh grid boundary definition--------%
xms=a11/2 - 2*(d);
xmf=a11/2 + 2*(d);
yms=a12/2 - 2*(d);
ymf=a12/2 + 2*(d);
%----------------Grid size----------------%
g = 0.085 ;
xq1=xms:g:xmf;
xq = xq1';
yq1=yms:g:ymf;
yq = yq1';
%-----Mesh gird around the hole----------%
[K1,K2] = meshgrid(xq, yq);
a= size(xq1,2);
b= size(yq1,2);
for k = 0:b
for j=0:a
e=((k*g)-2*d)^2+((j*g)-2*d)^2-(.5*d)^2;
if e<0
K1(j,k)= NaN;
K2(j,k)= NaN;
end
end
end
zz1=0;
zz2= 0;
%----Importing files from abaqus---------%
for i =1:N
fx =[ 'd:/babar/Abaqus/S2000/aax' num2str(i) '.txt'];
fy =[ 'd:/babar/Abaqus/S2000/aay' num2str(i) '.txt'];
fu =[ 'd:/babar/Abaqus/S2000/aau1' num2str(i) '.txt'];
fv =[ 'd:/babar/Abaqus/S2000/aau2' num2str(i) '.txt'];
x = textfile(fx);
y = textfile(fy);
z1 = textfile(fu);
z2 = textfile(fv);
U1 = griddata(x,y,z1,K1,K2);
U2 = griddata(x,y,z2,K1,K2);
zz1 = U1+zz1;
zz2 = U2+zz2;
i ;
end
%--------Averaging the displacements-------%
zpk1 = (zz1)./N;
zpk2 = (zz2)./N;
xlswrite('zpk1.xlsx',zpk1)
xlswrite('zpk2.xlsx',zpk2)
%------Creating a strain matrix-----------%
E = zeros(2*(size(K1,1)-1),2*(size(K1,1)-1))
for j = 1: (size(K1,1)-1)
for i = 1: (size(K1,1)-1)
v = [zpk1(j,i);zpk2(j,i);zpk1(j,i+1);zpk2(j,i+1);zpk1(j+1,i+1);zpk2(j+1,i+1);zpk1(j+1,i);zpk2(j+1,i)];
e1= strain1(v);
e2= strain2(v);
e3= strain3(v);
e4= strain4(v);
E((2*j-1),(2*i-1)) = e1(1);
E((2*j-1),2*i) = e2(1);
E(2*j,(2*i-1)) = e4(1);
E(2*j,2*i) = e3(1);
end
end
su = round(4*d/g)+1 ;
r = E((((su-1)- round(d/g)):-1:1),(su-1));
p = E((((su-1)- round(d/g)):-1:1),(su));
st = (p+r)./(1.5*(10)^(-4));
m = g*(size(r)-1);
H = 0:g:(m);
h = H./10;
writematrix(st)
type 'st.txt'
writematrix(h)
type 'h.txt'
plot(h,st)
xlim([0 1.5])
xlabel("X2/d",'fontsize',14)
ylabel("Normalised Strain along vertical path", 'fontsize',13)
legend("d/w = 0.5")
saveas(gcf,'plot.png')
contourf(st);
colorbar;
saveas(gcf, 'contour.png');
function E1 = strain1(v)
B1 = [1 0 0 0;0 0 0 1;0 1 1 0];
%% for node 1
x1=-1/sqrt(3);eta1=-1/sqrt(3);
B21 = B2();
B31 = B3(x1,eta1);
B12 = B1*B21;
B = B12*B31;
E1 =B*v;
end
function E1 = strain2(v)
B1 = [1 0 0 0;0 0 0 1;0 1 1 0];
%% for node 1
x1=1/sqrt(3);eta1=-1/sqrt(3);
B21 = B2();
B31 = B3(x1,eta1);
B12 = B1*B21;
B = B12*B31;
E1 =B*v;
end
function E1 = strain3(v)
B1 = [1 0 0 0;0 0 0 1;0 1 1 0];
%% for node 1
x1=1/sqrt(3);eta1=1/sqrt(3);
B21 = B2();
B31 = B3(x1,eta1);
B12 = B1*B21;
B = B12*B31;
E1 =B*v;
end
function E1 = strain4(v)
B1 = [1 0 0 0;0 0 0 1;0 1 1 0];
%% for node 4
x1=-1/sqrt(3);eta1=1/sqrt(3);
B21 = B2();
B31 = B3(x1,eta1);
B12 = B1*B21;
B = B12*B31;
E1 =B*v;
end
function B21 = B2()
B21 = [0.05/0.0025 0 0 0;0 0.05/0.0025 0 0;0 0 0.05/0.0025 0;0 0 0 0.05/0.0025];
end
function B31 = B3(x1,eta1)
B31 = [-(1-eta1)*0.25 0 (1-eta1)*0.25 0 (1+eta1)*0.25 0 -(1+eta1)*0.25 0;...
-(1-x1)*0.25 0 -(1+x1)*0.25 0 (1+x1)*0.25 0 (1-x1)*0.25 0;...
0 -(1-eta1)*0.25 0 (1-eta1)*0.25 0 (1+eta1)*0.25 0 -(1+eta1)*0.25;...
0 -(1-x1)*0.25 0 -(1+x1)*0.25 0 (1+x1)*0.25 0 (1-x1)*0.25];
end
function value = textfile(filename)
fileID = fopen(filename, 'r');
if fileID == -1
error('Failed to open file: %s', filename);clc;
clear all;
%-----Geometry,Number of simulations------%
d = 10;
N = 1000;
a11 = 250*(d/10);
a12= 100*(d/10);
%-----Mesh grid boundary definition--------%
xms=a11/2 - 2*(d);
xmf=a11/2 + 2*(d);
yms=a12/2 - 2*(d);
ymf=a12/2 + 2*(d);
%----------------Grid size----------------%
g = 0.085 ;
xq1=xms:g:xmf;
xq = xq1';
yq1=yms:g:ymf;
yq = yq1';
%-----Mesh gird around the hole----------%
[K1,K2] = meshgrid(xq, yq);
a= size(xq1,2);
b= size(yq1,2);
for k = 0:b
for j=0:a
e=((k*g)-2*d)^2+((j*g)-2*d)^2-(.5*d)^2;
if e<0
K1(j,k)= NaN;
K2(j,k)= NaN;
end
end
end
zz1=0;
zz2= 0;
%----Importing files from abaqus---------%
for i =1:N
fx =[ 'd:/babar/Abaqus/S2000/aax' num2str(i) '.txt'];
fy =[ 'd:/babar/Abaqus/S2000/aay' num2str(i) '.txt'];
fu =[ 'd:/babar/Abaqus/S2000/aau1' num2str(i) '.txt'];
fv =[ 'd:/babar/Abaqus/S2000/aau2' num2str(i) '.txt'];
x = textfile(fx);
y = textfile(fy);
z1 = textfile(fu);
z2 = textfile(fv);
U1 = griddata(x,y,z1,K1,K2);
U2 = griddata(x,y,z2,K1,K2);
zz1 = U1+zz1;
zz2 = U2+zz2;
i ;
end
%--------Averaging the displacements-------%
zpk1 = (zz1)./N;
zpk2 = (zz2)./N;
xlswrite('zpk1.xlsx',zpk1)
xlswrite('zpk2.xlsx',zpk2)
%------Creating a strain matrix-----------%
E = zeros(2*(size(K1,1)-1),2*(size(K1,1)-1))
for j = 1: (size(K1,1)-1)
for i = 1: (size(K1,1)-1)
v = [zpk1(j,i);zpk2(j,i);zpk1(j,i+1);zpk2(j,i+1);zpk1(j+1,i+1);zpk2(j+1,i+1);zpk1(j+1,i);zpk2(j+1,i)];
e1= strain1(v);
e2= strain2(v);
e3= strain3(v);
e4= strain4(v);
E((2*j-1),(2*i-1)) = e1(1);
E((2*j-1),2*i) = e2(1);
E(2*j,(2*i-1)) = e4(1);
E(2*j,2*i) = e3(1);
end
end
su = round(4*d/g)+1 ;
r = E((((su-1)- round(d/g)):-1:1),(su-1));
p = E((((su-1)- round(d/g)):-1:1),(su));
st = (p+r)./(1.5*(10)^(-4));
m = g*(size(r)-1);
H = 0:g:(m);
h = H./10;
writematrix(st)
type 'st.txt'
writematrix(h)
type 'h.txt'
plot(h,st)
xlim([0 1.5])
xlabel("X2/d",'fontsize',14)
ylabel("Normalised Strain along vertical path", 'fontsize',13)
legend("d/w = 0.5")
saveas(gcf,'plot.png')
contourf(st);
colorbar;
saveas(gcf, 'contour.png');
function E1 = strain1(v)
B1 = [1 0 0 0;0 0 0 1;0 1 1 0];
%% for node 1
x1=-1/sqrt(3);eta1=-1/sqrt(3);
B21 = B2();
B31 = B3(x1,eta1);
B12 = B1*B21;
B = B12*B31;
E1 =B*v;
end
function E1 = strain2(v)
B1 = [1 0 0 0;0 0 0 1;0 1 1 0];
%% for node 1
x1=1/sqrt(3);eta1=-1/sqrt(3);
B21 = B2();
B31 = B3(x1,eta1);
B12 = B1*B21;
B = B12*B31;
E1 =B*v;
end
function E1 = strain3(v)
B1 = [1 0 0 0;0 0 0 1;0 1 1 0];
%% for node 1
x1=1/sqrt(3);eta1=1/sqrt(3);
B21 = B2();
B31 = B3(x1,eta1);
B12 = B1*B21;
B = B12*B31;
E1 =B*v;
end
function E1 = strain4(v)
B1 = [1 0 0 0;0 0 0 1;0 1 1 0];
%% for node 4
x1=-1/sqrt(3);eta1=1/sqrt(3);
B21 = B2();
B31 = B3(x1,eta1);
B12 = B1*B21;
B = B12*B31;
E1 =B*v;
end
function B21 = B2()
B21 = [0.05/0.0025 0 0 0;0 0.05/0.0025 0 0;0 0 0.05/0.0025 0;0 0 0 0.05/0.0025];
end
function B31 = B3(x1,eta1)
B31 = [-(1-eta1)*0.25 0 (1-eta1)*0.25 0 (1+eta1)*0.25 0 -(1+eta1)*0.25 0;...
-(1-x1)*0.25 0 -(1+x1)*0.25 0 (1+x1)*0.25 0 (1-x1)*0.25 0;...
0 -(1-eta1)*0.25 0 (1-eta1)*0.25 0 (1+eta1)*0.25 0 -(1+eta1)*0.25;...
0 -(1-x1)*0.25 0 -(1+x1)*0.25 0 (1+x1)*0.25 0 (1-x1)*0.25];
end
function value = textfile(filename)
fileID = fopen(filename, 'r');
if fileID == -1
error('Failed to open file: %s', filename);
end
value = fscanf(fileID, '%f');
fclose(fileID);
end
end
value = fscanf(fileID, '%f');
fclose(fileID);
end
2 Kommentare
Torsten
am 19 Aug. 2024
fx =[ 'd:/babar/Abaqus/S2000/aax' num2str(i) '.txt'];
fy =[ 'd:/babar/Abaqus/S2000/aay' num2str(i) '.txt'];
fu =[ 'd:/babar/Abaqus/S2000/aau1' num2str(i) '.txt'];
fv =[ 'd:/babar/Abaqus/S2000/aau2' num2str(i) '.txt'];
We don't have access to your computer :-)
Voss
am 19 Aug. 2024
@Mohd Babar: All of your functions are defined two times, once in the main script and once inside the textfile function - it looks like you accidentally copied your script into the textfile function.
Antworten (1)
Voss
am 19 Aug. 2024
d and g are both scalars
d = 10;
% ...
g = 0.085 ;
so su is a scalar
su = round(4*d/g)+1 ;
so r and p are both column vectors
r = E((((su-1)- round(d/g)):-1:1),(su-1));
p = E((((su-1)- round(d/g)):-1:1),(su));
so st is a column vector
st = (p+r)./(1.5*(10)^(-4));
That is, su is of size n-by-1 for some n, but contourf requires the size of its argument to be p-by-q for some p>1, q>1. That's the reason for the error.
Siehe auch
Kategorien
Mehr zu Genomics and Next Generation Sequencing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!