I want to plot RMSE from mat file but it gives error

When I run the m file, it gives me he following error:
Operator '-' is not supported for operands of type 'cell'.
Error in RMSE_Plot (line 5)
MSE = mean((u-two).^2,2);
>>

 采纳的回答

One option is to use the cellfun function (keeping ‘two’ as a cell array). The other option is to use the cell2mat function to convert ‘two’ to a numeric array.
I use cellfun here —
clear;clc
LD = load('3sn_Varying.mat');
u = LD.u;
two = LD.two;
[m,n] = size(two);
MSE = cellfun(@(x)mean((u-x).^2,2), two);
RMSE = sqrt(MSE);
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Arrange in descending order
%%%%%%%%%%%%%%%%%%%%%%%%%%%
MSE=sort(MSE,'descend');
RMSE=sort(RMSE,'descend');
bestRMSE=min(RMSE)
bestRMSE = 6.5125e-05
%%%%%%%%%%%%%%%%%%%%
% Plotting RMSE
%%%%%%%%%%%%%%%%%%%%
figure
x=1:m;
semilogy(x,RMSE,'linewidth',2);
xlabel('\bf Independent Runs')
ylabel('\bf RMSE')
title('\bf RMSE vs Runs');
.

2 个评论

Thanks a lot. Each time your explanation clears everything to me.
As always, my pleasure!
I very much appreciate your compliment!

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by