改循环无法计画出每一个rows的modwt分解图
rows = 1;
while rows<=J+1
wi = w(rows,:);
subplot(J+1,1,rows);
plot(t,wi);
rows = rows+1;
end
改循环无法计画出每一个rows的modwt分解图
rows = 1;
while rows<=J+1
wi = w(rows,:);
subplot(J+1,1,rows);
plot(t,wi);
rows = rows+1;
end
chatgpt:不喜勿喷
您的代码中,循环迭代了变量 rows,并且在每次迭代中提取了一个名为 wi 的行向量。接下来,在每次迭代中,您都调用了 subplot 函数来在当前图形窗口中创建一个子图,并在该子图中使用 plot 函数来绘制 wi。根据您提供的代码,似乎您的问题是无法计算每个 wi 的 modwt 分解图。
要计算每个 wi 的 modwt 分解图,您可以使用以下代码来替换您的循环:
% 设置 modwt 参数
wname = 'db4';
J = 4;
dwtmode('per');
for rows = 1:J+1
% 获取当前行的数据
wi = w(rows, :);
% 计算 modwt 分解
[W, frequencies] = modwt(wi, J, wname);
% 在子图中绘制分解图
subplot(J+1, 1, rows);
plot(t, wi);
hold on;
for j = 1:J
plot(t, W(j, :), 'LineWidth', 1.5);
end
hold off;
title(['MODWT of w_' num2str(rows-1)]);
xlabel('Time');
ylabel('Amplitude');
end
这个代码中,我们首先设置了 modwt 分解所需的参数。然后,我们使用 for 循环迭代 rows 变量,并在每次迭代中获取当前行的数据。接下来,我们使用 modwt 函数来计算当前行的 modwt 分解,并获取分解系数和频率向量。最后,我们在子图中绘制当前行的原始数据和 modwt 分解图,并设置标题、标签和图例。