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

 채택된 답변

David Fletcher
David Fletcher 2021년 5월 24일

0 개 추천

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

댓글 수: 5

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 .

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by