Azzera filtri
Azzera filtri

How to solve error "Arrays have incompatible sizes for this operation?

26 visualizzazioni (ultimi 30 giorni)
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
Arrays have incompatible sizes for this operation.
  1 Commento
Dyuman Joshi
Dyuman Joshi il 15 Set 2023
load('ver.mat')
size(actual_ver)
ans = 1×2
1 500
n=2:100;
size(n)
ans = 1×2
1 99
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?

Accedi per commentare.

Risposta accettata

Mathieu NOE
Mathieu NOE il 18 Set 2023
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 Commenti

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Programming in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by