Adding a Calculation as a field in an existing table.
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Sclay748
el 19 de Ag. de 2020
Comentada: Walter Roberson
el 19 de Ag. de 2020
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/348074/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/348077/image.jpeg)
Hello,
I have a 1x100 structure called 'a'. (See table). It is located in a .mat file. It has 100 rows, but the first 7 are visable in the screenshot.
In my script, I have an equation that calculates dynamic_k1 and dynamic_k2 by multiplying 12 to each of the 100 values of capacitance. I am able to print dynamic_k1 and dynamic_k2 and the math is correct, but I am wondering how I can add those 2 new calculations to the table as 2 new columns with 100 data points each.
Thank you.
0 comentarios
Respuesta aceptada
Walter Roberson
el 19 de Ag. de 2020
Assuming that a is a struct array:
dynamic_k1 = 12 * vertcat(a.capacitance1);
dynamic_k2 = 12 * vertcat(a.capacitance2);
YourTable.dynamic_k1 = dynamic_k1;
YourTable.dynamic_k2 = dynamic_k2;
However, if a is your table then your syntax is wrong, and you should just do
a.dynanic_k1 = 12 * a.capacitance1;
a.dynanic_k2 = 12 * a.capacitance2;
3 comentarios
Walter Roberson
el 19 de Ag. de 2020
If you are trying to assign a new field dynamic_k1 and dynamic_k2 into a structure array instead of into a table() object, then
dynamic_k1 = arrayfun(@(C.capacitance1) 12*C, a, 'uniform', 0);
dynamic_k2 = arrayfun(@(C.capacitance2) 12*C, a, 'uniform', 0);
[a.dynamic_k1] = dynamic_k1{:};
[a.dynamic_k2] = dynamic_k2{:};
Or let me see... maybe
a = arrayfun(@(S) setfield(S.dynamic_k1, 12*S.capacitance1), a);
a = arrayfun(@(S) setfield(S.dynamic_k2, 12*S.capacitance2), a);
But a loop might be more efficient:
for K = 1 : numel(a)
a(K).dynamic_k1 = 12 * a(K).capacitance1;
a(K).dynamic_k2 = 12 * a(K).capacitance2;
end
Más respuestas (0)
Ver también
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!