当前位置:首页>开发>正文

关于matlab数组求和问题 matlab数组求和问题

2023-05-28 18:03:54 互联网 未知 开发

 关于matlab数组求和问题 matlab数组求和问题

关于matlab数组求和问题

[b,c]=size(a)
zheng=[]
fu=[]
for i=1:(c-1)
if a(i)*a(i 1)>0&a(i)>0
cat(2,zheng,a(i))
end
if a(i)*a(i 1)>0&a(i)<0
cat(2,fu,a(i))
end
if a(i)*a(i 1)<0&a(i)>0
cat(2,zheng,a(i))
disp(cat(2,zheng,sum(zheng)))
zheng=[]
end
if a(i)*a(i 1)<0&a(i)<0
cat(2,fu,a(i))
disp(cat(2,fu,sum(fu)))
fu=[]
end
end
if isempty(zheng)==0
cat(2,zheng,a(i))
disp(cat(2,zheng,sum(zheng)))
zheng=[]
end
if isempty(fu)==0
cat(2,fu,a(i))
disp(cat(2,fu,sum(fu)))
fu=[]
end

matlab数组求和问题

A只有一行吗?如果不是,我想,可以先整形一下:

A=[...
0 0 0 0 0
0 0 0 0 0
2 5 0 0 0
0 0 2 5 0
0 0 0 0 2 ]
a=reshape(A,1,[])
C=1:max(a)
B=histc(a,C)

结果
B =

0 3 0 0
还有,你说直方图大家都会明白你的意思的O(∩_∩)O~

matlab三层元胞数组怎么求和?

先用cat命令把cell数组拼接为三维数组,然后沿第3维求和即可: sum(cat(3,x{:}),3) 示例: >> for i=1:100,x(i,1)={rand(5,5)}end>> whos Name Size Bytes Class ans 5x5 200 double array i 1x1 8 double array x 100x1 26000 cell arrayGrand total is 2626 elements using 26208 bytes>> sum(cat(3,x{:}),3)ans = 47.9197 49.7069 49.4688 48.7908 49.0307 47.0792 50.9339 53.1208 52.5602 49.8037 52.8301 53.0407 51.9221 52.8539 53.3921 49.0305 50.9685 52.2504 51.3221 44.0397 47.2022 50.6585 49.9662 50.1173 51.2624第一句用于生成测试数据,第二句查看变量情况,你需要的只是第三句。

matlab 数组求和问题

place =

4 14 1 16 7 9 12 1 1 3 6 18 1 10 4 20
5 17 1 13 2 1 11 11 2 8 8 19 1 14 20 19 9 1 17 10 20 16 3 1 1 18 13 7 6 15 5 12 15 1

sum1=sum(place,2)

最新文章