作业帮 > 综合 > 作业

matlab编程实现矩阵的运算

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/04 05:27:07
matlab编程实现矩阵的运算
X=(xij)是m行n列的矩阵,首先矩阵的每一行减去该矩阵所有行,如第一行减1到m行,第二行减1到m行,以此类推,得到m*n个行向量A,计算B=A'*A,最后把得到的m*n个B相加,请问用matlab如何编程计算?
我试了好久了都没有成功,比如取m=31,n=8.上面错了,应该一共有m^2个A和B.
matlab编程实现矩阵的运算
你条件说的不是很清楚,你每一行-其他行,那么得到的行向量怎么能是m*n呢,只能是行向量个数.你最好举个小例子说明一下你的要求
再问: 上面说了是共有m^2个A和B。A=x(i,:)-x(k,:), i=1,……m;k=1,……m。
再答: [m,n] = size(X) k=1; for i=1:m for j = 1:m t(k,:) = X(i,:)-X(j,:) k = k+1; end end C = []; for i=1:k-1 B=t(i,:)'*t(i,:) C = C + B; end
再问: 谢谢您,把X带入后运行出现 ??? Error using ==> plus Matrix dimensions must agree. Error in ==> Untitled at 15 C = C + B; 是有什么错误吗?
再答: [m,n] = size(X) k=1; for i=1:m for j = 1:m t(k,:) = X(i,:)-X(j,:) k = k+1; end end C = zeros(m,m) for i=1:k-1 B=t(i,:)'*t(i,:) C = C + B; end 应该先给C赋值。。。这样看看
再问: 谢谢。运行结果还是有问题,我跟您发了一个私信,请您查收。 为了这个问题,我才学matlab,我的意思是先求Ak=X(i,:)-X(j,:),Bk=Ak’*Ak,C=∑Bk,k=1,……m^2。您的程序中t的作用我没看明白。