matlab做一个三维矩阵如何设计一个三维矩阵,相当于一个有27个小格的正方体,给其中小格赋值,有13个0,14个1,然后计算每条有3个格子的线上的值,比如水平线,垂直线,对角线,当3个数之和为0或3时
来源:学生作业帮助网 编辑:作业帮 时间:2024/08/09 23:45:27
![matlab做一个三维矩阵如何设计一个三维矩阵,相当于一个有27个小格的正方体,给其中小格赋值,有13个0,14个1,然后计算每条有3个格子的线上的值,比如水平线,垂直线,对角线,当3个数之和为0或3时](/uploads/image/z/692150-14-0.jpg?t=matlab%E5%81%9A%E4%B8%80%E4%B8%AA%E4%B8%89%E7%BB%B4%E7%9F%A9%E9%98%B5%E5%A6%82%E4%BD%95%E8%AE%BE%E8%AE%A1%E4%B8%80%E4%B8%AA%E4%B8%89%E7%BB%B4%E7%9F%A9%E9%98%B5%2C%E7%9B%B8%E5%BD%93%E4%BA%8E%E4%B8%80%E4%B8%AA%E6%9C%8927%E4%B8%AA%E5%B0%8F%E6%A0%BC%E7%9A%84%E6%AD%A3%E6%96%B9%E4%BD%93%2C%E7%BB%99%E5%85%B6%E4%B8%AD%E5%B0%8F%E6%A0%BC%E8%B5%8B%E5%80%BC%2C%E6%9C%8913%E4%B8%AA0%2C14%E4%B8%AA1%2C%E7%84%B6%E5%90%8E%E8%AE%A1%E7%AE%97%E6%AF%8F%E6%9D%A1%E6%9C%893%E4%B8%AA%E6%A0%BC%E5%AD%90%E7%9A%84%E7%BA%BF%E4%B8%8A%E7%9A%84%E5%80%BC%2C%E6%AF%94%E5%A6%82%E6%B0%B4%E5%B9%B3%E7%BA%BF%2C%E5%9E%82%E7%9B%B4%E7%BA%BF%2C%E5%AF%B9%E8%A7%92%E7%BA%BF%2C%E5%BD%933%E4%B8%AA%E6%95%B0%E4%B9%8B%E5%92%8C%E4%B8%BA0%E6%88%963%E6%97%B6)
matlab做一个三维矩阵如何设计一个三维矩阵,相当于一个有27个小格的正方体,给其中小格赋值,有13个0,14个1,然后计算每条有3个格子的线上的值,比如水平线,垂直线,对角线,当3个数之和为0或3时
matlab做一个三维矩阵
如何设计一个三维矩阵,相当于一个有27个小格的正方体,给其中小格赋值,有13个0,14个1,然后计算每条有3个格子的线上的值,比如水平线,垂直线,对角线,当3个数之和为0或3时计一次数,要使这样的线最少,共有多少种排法,最少有几条线
matlab做一个三维矩阵如何设计一个三维矩阵,相当于一个有27个小格的正方体,给其中小格赋值,有13个0,14个1,然后计算每条有3个格子的线上的值,比如水平线,垂直线,对角线,当3个数之和为0或3时
clear
tt=0;
for nn=1:1000 %nn的上限可以调整nn=10000时,我算出来是7条线最少
for tt=1:100
t=0;n=0;
for i=1:3
for j=1:3
for k=1:3
h=randperm(2)-1;
f(i,j,k)=h(1);
t=t+f(i,j,k);
end
end
end
tt=tt+1;
ttt(tt)=t;
if t==13
break;
end
end
for i=1:3
for j=1:3
for k=1:3
if sum(f(i,j,:))==3|sum(f(i,j,:))==0|sum(f(:,j,k))==3|sum(f(:,j,k))==0|sum(f(i,:,k))==3|sum(f(i,:,k))==0
n=n+1;
elseif i==2&j==2&k~=2
for k=1:3
if f(1,1,k)==f(2,2,k)&f(1,1,k)==f(3,3,k)
n=n+1;
elseif f(3,1,k)==f(2,2,k)&f(3,1,k)==f(1,3,k)
n=n+1;
end
end
elseif j==2&k==2&i~=2
for i=1:3
if f(i,1,1)==f(i,2,2)&f(i,1,1)==f(i,3,3)
n=n+1;
elseif f(i,1,3)==f(i,2,2)&f(i,1,3)==f(i,3,1)
n=n+1;
end
end
elseif i==2&k==2&j~=2
for j=1:3
if f(1,j,1)==f(2,j,2)&f(1,j,1)==f(3,j,3)
n=n+1;
elseif f(3,j,1)==f(2,j,2)&f(3,j,1)==f(1,j,3)
n=n+1;
end
end
elseif =2&k~=2&j~=2
if f(i,j,k)+f(4-i,4-j,4-k)==2*f(2,2,2)
n=n+1;
end
end
end
end
end
qq(nn)=n;
g(:,:,:,nn)=f;
if nn>1
if qq(nn)>qq(nn-1)
g(:,:,:,nn)=g(:,:,:,nn-1);
qq(nn)=qq(nn-1);
end
end
end
qq(nn)
g(:,:,:,nn) %这个程序应该就可以解决问题了,至于精度的话,你可以通过调整nn的上限来解决.最后输出了一个是条数,另外一组是0,1的分布,按三层描述的.