How to multiply arrays in struct file with a variable?
조회 수: 3 (최근 30일)
이전 댓글 표시
I have four variables that are known to me, i.e. 'high', 'low' and 'a' and 'b'. I have a mat file, which contains a lot of arrays. I successfully load the array I want. But I want to multiply the arrays with variable 'a' and 'b'.
filename1 = sprintf('Zy%d', low); c = a * load('Z.mat', filename1); filename2 = sprintf('Zy%d', high); d = b * load('Z.mat', filename2);
But I get this answer:
Undefined operator '*' for input arguments of type 'struct'.
How do I multiply the variable with these loaded arrays?
댓글 수: 0
채택된 답변
Rik
2018년 10월 1일
The load functions loads to a struct, where each variable is a field, even when you specify only a single variable. The code below should do the trick.
filename1 = sprintf('Zy%d', low);
temp=load('Z.mat', filename1);
c = a * temp.(filename1);
filename2 = sprintf('Zy%d', high);
temp=load('Z.mat', filename2);
d = b * temp.(filename2);
If you're working on Octave the following syntax might work as well
d = b * load('Z.mat', filename2).(filename2);
댓글 수: 0
추가 답변 (1개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Structures에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!