How to solve error "Arrays have incompatible sizes for this operation?
26 次查看(过去 30 天)
显示 更早的评论
I'm trying to calculate the standard deviation of noise but when i run my code its giving me an error. I need help please.
this is my code:
L=load("ver.mat");
t_6=(0:numel(L.actual_ver)-0.005);
Ensembl_avg=mean(L.ver);
figure(1);
plot(t_6,Ensembl_avg);
hold on;
plot(t_6,L.actual_ver);
grid on;
xlabel('Time');
ylabel('Ensemble Average and Actual Signal');
title('Ensemble Average and Actual Signal VS Time:');
figure(2);
One_of_the_measurements=50;
plot(t_6,L.ver(One_of_the_measurements,:));
hold on;
plot(t_6,L.actual_ver);
xlabel('Time');
ylabel('Actual Signal and One Measurement');
title('Actual Signal and One Measurement VS Time');
Noise_calc=L.actual_ver-Ensembl_avg;
n=2:100;
for i6=1:length(Noise_calc)
std(Noise_calc(i6));
std((L.actual_ver-One_of_the_measurements)./sqrt(n));
end
1 个评论
Dyuman Joshi
2023-9-15
load('ver.mat')
size(actual_ver)
n=2:100;
size(n)
You are trying to use element-wise division of 1x500 and 1x99, which is not possible, thus you get the error.
Idk what you are trying to do with that particular operation/line of code, so I can not suggest anything. Please provide additional details as to what your goal is.
Also, you are trying to get the standard deviation of a scalar value, which does not make sense (atleast to me). What is the use of it?
采纳的回答
Mathieu NOE
2023-9-18
hello
I tried to understand what you wanted to do, and so far my suggestion is as follows :
L=load("ver.mat");
t_6=(0:numel(L.actual_ver)-0.005);
Ensembl_avg=mean(L.ver);
figure(1);
plot(t_6,Ensembl_avg);
hold on;
plot(t_6,L.actual_ver);
grid on;
xlabel('Time');
ylabel('Ensemble Average and Actual Signal');
title('Ensemble Average and Actual Signal VS Time:');
figure(2);
One_of_the_measurements=50;
plot(t_6,L.ver(One_of_the_measurements,:));
hold on;
plot(t_6,L.actual_ver);
xlabel('Time');
ylabel('Actual Signal and One Measurement');
title('Actual Signal and One Measurement VS Time');
% std of noise for signal "L.actual_ver" minus "Ensembl_avg"
Noise_calc=L.actual_ver-Ensembl_avg;
std(Noise_calc) % ans = 0.1005
% std of noise for signal "L.actual_ver" minus "one of the measurements"
% for the 100 measurements (results are stored in S)
for k = 1:100 %( k = one of the measurements);
S(k) = std((L.actual_ver-L.ver(k,:)));
end
figure(3);
plot(S) % shows the std of noise for the 100 measurements (measurement number is the x axis)
4 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!