# Operator '-' is not supported for operands of type 'table'

5 vues (au cours des 30 derniers jours)
HN le 11 Juil 2022
Hello everyone.
I have been trying to substract arrays. but I get an error message "
Operator '-' is not supported for operands of type 'table'
for
Q_dot{i} = (Q{i}(2:end,:) - Q{i}(1:end-1,:))./(Time{i}(2:end)-Time{i}(1:end-1))';
And part of the code is shown below. How the operator can be modified to handle this problem ? Or how should I modifit the data type ?
Q_dot = cell(1,6);
% table2array(Quat_dot);
Omg = cell(1,6);
for i=1:6
Q_dot{i} = (Q{i}(2:end,:) - Q{i}(1:end-1,:))./(Time{i}(2:end)-Time{i}(1:end-1))';
Omg{i} = zeros(length(Time{i}),3);
for k=1:length(Time{i})-1
% Something
end
end
Many thanks
##### 4 commentairesAfficher 2 commentaires plus anciensMasquer 2 commentaires plus anciens
Stephen23 le 11 Juil 2022
@HN: what do you expect this code to achieve?:
HN le 11 Juil 2022
Modifié(e) : HN le 11 Juil 2022
That function is just useless @Stephen23. I just forgot to remove it. But I am not sure if this stil affects my question.

Connectez-vous pour commenter.

### Réponse acceptée

Jonas le 11 Juil 2022
try e.g.
(Quat{i}{2:end,:} - Quat{i}{1:end-1,:})./(Time{i}{2:end}-Time{i}{1:end-1})';
(Quat{i}(2:end,:) - Quat{i}(1:end-1,:))./(Time{i}(2:end)-Time{i}(1:end-1))';
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Plus de réponses (2)

Campion Loong le 22 Juil 2022
If you are using table and addressing one variable at a time, dot subscripting (i.e. t.VarName(...) ) is often preferrable to braces (i.e. t{...} ). For one the code is more readable.
Also for reference, this doc topic has some examples on doing Calculations on Data in Tables.
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

Siddharth Bhutiya le 30 Mar 2023
Modifié(e) : Siddharth Bhutiya le 30 Mar 2023
The error message in the original question was about '-' not being supported on table. Starting R2023a, tables now support arithmetic operations so you could do things like the following.
T1 = table([1;3],[2;4]);
T2 = table([1;2],[3;4]);
T = T1 - T2
T = 2×2 table
Var1 Var2 ____ ____ 0 -1 1 0
T = (T1 - T2) ./ 10
T = 2×2 table
Var1 Var2 ____ ____ 0 -0.1 0.1 0
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Tables dans Help Center et File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by