以下のコードでcqに​数値が出力されないの​で、改善方法を教えて​ください

1 次查看(过去 30 天)
篤朗
篤朗 2024-9-26
% 座標
a = [-90, -70, -50, -30, 20, 40, 60, 80]; % X座標
b = [-90, -70, -50, -30, 20, 40, 60, 80]; % Y座標
c = sin(a) + cos(b);        % Z座標
% グリッド生成
[aq, bq] = meshgrid(linspace(-90, 80, 100), linspace(-90, 80, 100));
% スプライン補間
cq = griddata(a, b, c, aq, bq, 'cubic'); % cubicはスプライン補間
% 等高線プロット
contour(aq, bq, cq, 'ShowText', 'on');
colorbar;
title('等高線プロット(スプライン補間)');
xlabel('X座標');
ylabel('Y座標');
このコードを実行すると、aqとbqには100×100の数値が格納されますが、cqは空集合となってしまいます。エラーコードにはaqとbqとcqのデータの列数と行数が一致していませんと出るだけなので、何処が間違っているのかわかりません。
恐らく私のgriddataの理解が甘いのではないかと思っています。

回答(1 个)

UDAYA PEDDIRAJU
UDAYA PEDDIRAJU 2024-9-30
There's a mismatch in the data requirement of "griddata" function, you can read about it in documentation:
I have worked on the code and modified like this:
% Define a more diverse set of coordinates to avoid collinearity
a = [-90, -70, -50, -30, 20, 40, 60, 80]; % X座標
b = [-90, -80, -60, -40, 10, 30, 50, 70]; % Y座標 (changed to avoid collinearity)
% Calculate Z座標, converting degrees to radians
c = sin(deg2rad(a)) + cos(deg2rad(b));
% Create grid for contour plot
[aq, bq] = meshgrid(linspace(-90, 80, 100), linspace(-90, 80, 100));
% Interpolate data using cubic spline
cq = griddata(a, b, c, aq, bq, 'cubic');
% Debugging outputs
disp('Size of aq:');
disp(size(aq));
disp('Size of bq:');
disp(size(bq));
disp('Size of cq:');
disp(size(cq));
% Check dimensions
if isempty(cq) || any(isnan(cq(:))) % Check if cq has valid values
warning('Interpolation resulted in NaN values or empty output. Check input data.');
cq(isnan(cq)) = 0; % Replace NaNs with 0
end
% Plot contour only if dimensions match
if size(cq, 1) == size(aq, 1) && size(cq, 2) == size(bq, 2)
contour(aq, bq, cq, 'ShowText', 'on');
colorbar;
title('等高線プロット(スプライン補間)');
xlabel('X座標');
ylabel('Y座標');
else
error('Dimensions of Z data (cq) do not match grid dimensions. Sizes: aq (%d,%d), bq (%d,%d), cq (%d,%d)', ...
size(aq, 1), size(aq, 2), size(bq, 1), size(bq, 2), size(cq, 1), size(cq, 2));
end

类别

Help CenterFile Exchange 中查找有关 ビッグ データの処理 的更多信息

标签

产品


版本

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!