有关matlab的sum函数问题,其中sum(x,y)的表示方法是什么意思?急用

问题描述:

有关matlab的sum函数问题,其中sum(x,y)的表示方法是什么意思?急用
n=10;
z = zeros(n,n);
cells = z;
cells(n/2,.25*n:.75*n) = 1;
cells(.25*n:.75*n,n/2) = 1;
x = 2:n-1;
y = 2:n-1;
sum(x,y) = cells(x,y-1) + cells(x,y+1) + ...
cells(x-1,y) + cells(x+1,y) + ...
cells(x-1,y-1) + cells(x-1,y+1) + ...
cells(x+1,y-1) + cells(x+1,y+1);

首先:cells(n/2,.25*n:.75*n) = 1;cells(.25*n:.75*n,n/2) = 1;---------这两句有问题,行、列标志非整数改了一下:cells(n/2,round(0.25*n:0.75*n))=1;cells(round(0.25*n:0.75*n),n/2)=1;>> xx =2 3 4 5 6 7 8 9>>...那个不是整数的它会自动四舍五入的,cells表示的内容也知道,我要问的是sum(x,y)这样的用法表示的是什么??我运行了一下,只是运行sum(x,y)会出错,加上等号后面的内容才能运行成功。所以我想知道这样表示是什么意思你是说只运行sum(x,y)?sum就是你定义的一个矩阵,这一句是是赋值语句就是把等号右面的计算值赋值给sum的第2-9行,第2-9列的元素就那整个程序运行的时候,我把sum改成了s后,两次运行的结果不一样的,sum对应的是9维方阵,s对应的是3维方阵不会的,你看:clear all;clc;n=10;z=zeros(n,n);cells=z;cells(n/2,round(0.25*n:0.75*n))=1;cells(round(0.25*n:0.75*n),n/2)=1;x=2:n-1;y=x;s(x,y)=cells(x,y-1)+cells(x,y+1)+cells(x-1,y)+cells(x+1,y)...+cells(x-1,y-1)+cells(x-1,y+1)+cells(x+1,y-1)+ cells(x+1,y+1); >> ss = 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 2 1 2 0 0 0 0 1 2 5 4 5 3 2 1 0 1 1 4 4 4 2 1 1 0 1 2 5 4 5 3 2 1 0 0 0 3 2 3 0 0 0 0 0 0 2 1 2 0 0 0 0 0 0 1 1 1 0 0 0