I want multiply with 1.02 each and every element so new table will be 8*8. How one can use for loop?

 Réponse acceptée

David Fletcher
David Fletcher le 24 Mai 2021
If you're just multiplying by the scaler of 1.02 then
Qxxepoch1{:,:}*1.02
will do what you want without a loop

5 commentaires

Thanks it works.
Why it is showing that brace indexing is not supported for variables of this type. ?
Can you please help me with it?
Use {} if your data is inside a cell array to reach into the cell to extract the data (like cracking an eggshell to reach the egg inside.) Use () if your data is in a matrix to extract individual elements (like picking an M&M from a bowl of candy.)
M = [1 2 3; 4 5 6; 7 8 9];
C = {M};
2*M(3, 1) % 2*7 = 14
ans = 14
2*C{1} % 2 times the matrix M
ans = 3×3
2 4 6 8 10 12 14 16 18
% 2 times the element in location (3, 1) in the matrix stored in the first cell of C
2*C{1}(3, 1)
ans = 14
Just to expand on the information above - your original data was stored in a table. You can't apply the times (*) operator directly on the table, so writing
Qxxepoch1{:,:}
extracts all the data in the table into a matrix. Holding the data in a matrix allows you to apply the times operator to multiply the elements by 1.02. However, as mentioned above, to access the data in a matrix you use the normal indexing with parenthesis () - using brace {} indexing on a matrix will cause the error you experienced. It can be confusing - you just need to be aware of what your data is stored in, and use the appropriate indexing for the task.
Thank you , it was beneficial .

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Produits

Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by