感谢大侠上次的帮忙,我最后的数据NO_delta是个31*5*16的matrix (channel*frequency*subject),然后我做mean(NO_delta,3)求均值,后来发现有些sub某些channel 的fequency是0,所以我想做非0的求均值,似乎还要写个code是吗,有没有简单的function能用的吗。
感谢大侠了。
我查到一个s = nonzeros(A), 可以找到非0,但是之后的mean是怎么计算呢。
我首先得到每个subject的31*5的一个matrix(channel*frequency),现在已经按照你教我的得到了一个31*5*16的data_set,我现在相求均值,本来用mean(data_set,3)就好了,可是我的数据有些subject某些channel的frequency是都是0,这个时候我就不想把这个subject的这个channel算在里面,这样该如何计算呢?
追答你去自己定义一个函数可以只取出非零项,用find函数
matlab怎么求一个matrix中非0的平均值
sum(NO_delta,3).\/sum(NO_delta(NO_delta~=0),3)
matlab矩阵如何求平均值?
用mean(a,1)或者mean(a,2)函数求矩阵a均值,再用cumsum函数可以累加。具体代码如下:>> A=rand(3)a=mean(A,1) %按列平均 b=mean(A,2) %按行平均 c=mean(A(:)) %全部平均 A = 0.8134 0.8940 0.2876 0.7185 0.9507 0.9264 0.5008 0.4624 0.4963 a = 0.6776 0.7690 0....
Matlab matrix(矩阵)问题
>> x=A\\b % 用反除求Ax=b的解,结果x是个列向量,注意是A\\b不是b\\A x = 0 1 0 >> A*x % 验证一下A*x刚好等于b ans = 1 2 3 >> x=b'\/A' % 这回是正除了,不过b'是行向量,A'也倒一下,正除的时候就是b'\/A'了,不是A'\/b'了,结果x是个行向量 x = 0 ...
matlab中如何求矩阵的特征值和特征向量
1、第一步我们首先需要知道计算矩阵的特征值和特征向量要用eig函数,可以在命令行窗口中输入help eig,查看一下eig函数的用法,如下图所示:2、第二步在命令行窗口中输入a=[1 2 3;2 4 5;7 8 9],按回车键之后,输入[x,y]=eig(a),如下图所示:3、第三步按回车键之后,得到了x,y的值...
matlab中怎样表示如果一个数值变量的值等于一个矩阵中的某一个值
使用find()函数,先进行查找m为变量 a=[1 2 3; 4 5 6]find(m==3)如果返回值不是Empty matrix: 0-by-1 则矩阵中有这个数 具体find()用法要参考matlab帮助文档 很详细的
matlab 如何求矩阵中NaN所在的位置 [m n]=find(a==NaN)命令后显示Empt...
这是说明没有寻找到满足你所设定的条件的点,所以用empty matrix表示
MATLAB求解一个简单的三角函数方程,得到的只有一个解,显然有无数个解...
代码如下:syms x y = solve('cos(x) - 1\/cosh(x) = 0', x);结果:y = matrix([[0]])只有一个,没有20个解。
matlab中funm函数的一个问题
这个错误我这边运行也有,查看了funm的help文档,发现一句话:"For matrix square roots,use sqrtm(A)instead”也就是说希望用sqrtm来实现这个功能。
matlab中m*n的矩阵每一行保留一个元素,剩下的元素变0,共产生m的n次方...
[m, n] = size(matrix);for i = 1:m for j = 1:n tmp = zeros(m,n);tmp(i,j) = matrix(i,j);New_matrix{i, j} = tmp;end end New_matrix里面就是你要的新矩阵
matlab矩阵求逆的时候,发出warning,具体为对一个稀疏矩阵求逆矩阵
奇异矩阵问题。你的矩阵接近奇异了,也就是其行列式接近于0,因而计算结果可能不精确。解决方案可以是调整自己的算法(选择合适的迭代法、调整合适的步长),或者试试伪逆函数pinv()求解工程中矩阵的逆。祝好。