Info
이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.
Plotting 3 matrix vs range curves
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi everyone,
I have 3 sets of parameter data that I'm attempting to plot against a range of thickness values from 1nm-1um. I have attempted multiple ways of doing this but I believe this way is the closest to retrieving the answer:
clc;clf;
a = [1e-10 7e-10 8e-10];
b = [10e-6 10e-6 10e-6];
for t = 1e-9:1e-9:1000e-9,
Rf = pcu./(w.*t);
end
figure
plot(t,Rf),title('Rf vs. t'),xlabel('t'),ylabel('Rf')
If anyone could give any suggestions or let me know if I'm close to the answer then I'd appreciate it!
Thanks
댓글 수: 0
답변 (1개)
Kirby Fears
2016년 1월 14일
편집: Kirby Fears
2016년 1월 14일
I don't know what the values of pcu or w are, but here's a simplification that works fine.
t = 1e-9:1e-9:1000e-9;
Rf = (2.*t);
figure();
plot(t,Rf),title('Rf vs. t'),xlabel('t'),ylabel('Rf');
I don't see a need for the for loop in your code. The dot operations will take care of element-wise multiplication and division.
If you have three separate calculations for t and Rf, you can plot each one separately.
댓글 수: 2
Kirby Fears
2016년 1월 14일
편집: Kirby Fears
2016년 1월 14일
Thanks for the clarification. This should do it:
t = (1e-9:1e-9:1000e-9)';
a = repmat([1e-10, 7e-10, 8e-10],size(t,1),1);
b = repmat([10e-6, 10e-6, 10e-6],size(t,1),1);
t = repmat(t,1,size(a,2));
Rf = a./(b.*t);
plot(t,Rf);
title('Rf vs. t');
xlabel('t');
ylabel('Rf');
Both arrays involved in a dot operation need to have the same dimensions. It won't automatically do all combinations for you. Matrix multiplication could be used here, but replicating the rows and columns is more straightforward.
이 질문은 마감되었습니다.
참고 항목
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!