如何存储一个双循环结果成一个矩阵列逐列?
1次检视(最近30天)
显示旧的注释
我有一个矩阵循环;我所做的就是找出满足条件的特定点并将它们存储到数组上下;
当cycle1是一列时,它可以工作;但是当cycle1增加到2列时,双循环就不起作用了。
上下的大小是不确定的;我估计它们的尺寸是100*12;
现在代码没有错误,但是给出错误的结果。
请给我一些关于这个代码的建议。
Cycle1 = [butterworth_filter1,butterworth_filter2];
[m,n] = size(cycle1)
Up = 0 (100,12);
Down = 0 (100,12);
k = 1;
为J = 1:n
为I = 1:m
如果I == m
打破
elseifCycle1 (i,j) < 1.5e-5 && Cycle1 (i+1,j) > 1.5e-5
Up (k,:) = I + 1;
K = K +1;
elseifCycle1 (i,j) > 1.5e-5 && Cycle1 (i+1,j) < 1.5e-5
Down (k,:) = i;
K = K +1;
结束
结束
结束
6个评论
Stephen23
2021年9月29日
雷丽错误发布的“答案”移到了这里:
从测试代码来看,up有结果;现在每一列都是一样的;我需要检查随机矩阵;
下一件事是列中不应该有0;这就是我用k的原因;
以前处理一维数组时,我使用
Up (end+1) = I +1;存储位置;但现在我需要处理一个矩阵;我被困在这里了。
答案(1)
1月
2021年9月29日
你用了一个计数器k
向上
和
下来
列表。
Cycle1 = [butterworth_filter1,butterworth_filter2];
[m, n] = size(cycle1)
Up = 0 (100,12);
Down = 0 (100,12);
Kup = 1;
Kdown = 1;
为J = 1:n
为I = 1:m - 1%比:if i==m, break简单
如果Cycle1 (i,j) < 1.5e-5 && Cycle1 (i+1,j) > 1.5e-5
Up (kup,:) = 1 + 1;%您确定要将完整行设置为i+1吗?
Kup = Kup + 1
elseifCycle1 (i,j) > 1.5e-5 && Cycle1 (i+1,j) < 1.5e-5
Down (kdown,:) = i;
Kdown = Kdown + 1;
结束
结束
结束