I'm having trouble saving the matrix?

3 visualizaciones (últimos 30 días)
studentmatlaber
studentmatlaber el 14 de Abr. de 2022
Comentada: Walter Roberson el 24 de Feb. de 2025
Mxest1=(x_T_est1)';
Mxest1(isnan(Mxest1)) = [] %NANs
Myest1=(y_T_est1)';
Myest1(isnan(Myest1)) = [] %NANs
for n=1:length(Mxest1)
mae1=sum(sqrt((x_T-Mxest1(n)).^2+(y_T-Myest1(n)).^2));
end
mae1(1,1)=mae1/n
save('mae1.mat','mae1')
%for new value Mxest1 and Myest1
Mxest1=(x_T_est1)';
Mxest1(isnan(Mxest1)) = [] %NANs
Myest1=(y_T_est1)';
Myest1(isnan(Myest1)) = [] %NANs
for n=1:length(Mxest1)
mae1=sum(sqrt((x_T-Mxest1(n)).^2+(y_T-Myest1(n)).^2));
end
mae1(1,2)=mae1/n
save('mae1.mat','mae1')
Hello. I have 51 variegated Mxest1 and Myest1 values. I enter these values manually. As a result, the matrix I want should be mae1=1x51. After manually entering the first value, I save the first result at mae1(1,1). Then I want to save the second value at mae1(1,2). But it doesn't do it correctly. How can I do that? I would be glad if you help.
  1 comentario
Benjamin Thompson
Benjamin Thompson el 14 de Abr. de 2022
You have not defined x_T_est1 in your code listing.

Iniciar sesión para comentar.

Respuestas (1)

Shreshth
Shreshth el 24 de Feb. de 2025
Hi,
I understand you would like to store the output from each loop in mae1.
You can achieve this by using a temporary variable “temp” and storing the result inside the “for” loop in “temp” variable. After exiting loop, you can store the value of “temp” variable in “mae1”.
for n=1:length(Mxest1)
temp=sum(sqrt((x_T-Mxest1(n)).^2+(y_T-Myest1(n)).^2));
end
mae1(1,1)=temp/n;
Repeat the same for mea1(1,2).
Hope this helps!
  1 comentario
Walter Roberson
Walter Roberson el 24 de Feb. de 2025
The above code shares the problem of the original code. Each iteration of the for loop, the temp variable is being completely overwritten. You might as well only perform the final iteration of the loop, for n=length(Mxest1) because the previous iteration's output are going to be discarded.
You can
for n=1:length(Mxest1)
temp(n)=sum(sqrt((x_T-Mxest1(n)).^2+(y_T-Myest1(n)).^2));
end
but then you run into the problem:
mae1(1,1)=temp/n;
The right hand side is now a vector, but the assignment is to a scalar location. It is not at all clear what the desired output is.

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by