matlab从二维阵列中选择元素
我有一个601x1600 matlab阵列时间X试验。我想通过丢弃超过标准值100的试验来创建一个单独的数组。即,生成的阵列大小应为601 x n。有人能帮我吗 谢谢,matlab从二维阵列中选择元素,matlab,Matlab,我有一个601x1600 matlab阵列时间X试验。我想通过丢弃超过标准值100的试验来创建一个单独的数组。即,生成的阵列大小应为601 x n。有人能帮我吗 谢谢, 彼得这里有两种选择。一个是如所指出的那样使用find 我在这里建议的另一个是基于哪个更快 m_transposed = m'; % m is your 601*1600 matrix mask = m_transposed<=100; % a logical matrix m = m_transposed(mask);
彼得这里有两种选择。一个是如所指出的那样使用find 我在这里建议的另一个是基于哪个更快
m_transposed = m'; % m is your 601*1600 matrix
mask = m_transposed<=100; % a logical matrix
m = m_transposed(mask); % this creates a vector, the values of which are <= 100
m = reshape(m, [], 601)'; % reshape the vector into a 601*n matrix.
使现代化
不知道为什么我的答案被否决了。也许我没有提到查找方法?替换
mask=m_transposed100您查看了find周围的文档了吗?这里更好的参考:您确定在丢弃大于100的值后,所有行仍然可以有n列吗?n将等于或小于1600不要太担心一次向下投票。有些人对他们认为“不好”的问题的答案投了反对票。这就是说,我认为OP想要放弃矩阵试验中的所有列。不过,一列超过100意味着什么,大家都在猜测。OP在两天前发布问题后就再也没有回来过。
m_transposed = m';
m = reshape(m_transposed(m_transposed<=100), [], 601)';
mask = m>100;
m(mask) = nan; % replace values > 100 with nans.
m(:,sum(mask)==size(m,1)) = []; % delete columns whose values are all nans.