Does Any one know what am I doing here and what is the solution for it?

조회 수: 1 (최근 30일)
Hi,
I am basically plotting 10 curves on the graph and on each curves I would like to put some text. In my mind, I am doing the write thing but still getting error. Can anyone point me in the right direction:
Errors:
Error: File: asad1.m Line: 26 Column: 12
Indexing with parentheses '()' must appear as the last operation of a valid indexing expression.
Code:
close all
clear all
clc
w = [0,0.00106230528000000,0.00424922112000000,0.00956074752000000,0.0169968844800000,0.0265576320000000,0.0382429900800000,0.0520529587200000,0.0679875379200000,0.0860467276800000,0.106230528000000,0.128538938880000,0.152971960320000,0.179529592320000,0.208211834880000,0.239018688000000,0.271950151680000,0.307006225920000,0.344186910720000,0.383492206080000,0.424922112000000,0.468476628480000,0.514155755520000,0.561959493120000,0.611887841280000,0.663940800000000,0.718118369280000,0.774420549120000,0.832847339520000,0.893398740480000,0.956074752000000,1.02087537408000,1.08780060672000,1.15685044992000,1.22802490368000,1.30132396800000,1.37674764288000,1.45429592832000,1.53396882432000,1.61576633088000,1.69968844800000,1.78573517568000,1.87390651392000,1.96420246272000,2.05662302208000,2.15116819200000,2.24783797248000,2.34663236352000,2.44755136512000,2.55059497728000,2.65576320000000,2.76305603328000,2.87247347712000,2.98401553152000,3.09768219648000,3.21347347200000,3.33138935808000,3.45142985472000,3.57359496192000,3.69788467968000,3.82429900800000,3.95283794688000,4.08350149632000,4.21628965632000,4.35120242688000,4.48823980800000,4.62740179968000,4.76868840192000,4.91209961472000,5.05763543808000,5.20529587200000,5.35508091648000,5.50699057152000,5.66102483712000,5.81718371328000,5.97546720000000].';
%w = 0.00106230528000000
x = [0:0.008:3.4];
L = 3.4;
E = 2.1E11;
I = ((0.008)^4)/12;
y = (((w.*x).*(L-x))/(24*E*I*L)).*(L^2+(x.*(L-x)));
% y(10:10:end, :)
% or some y's like this:
% plot(x, y([1, 5, 10, 40, 50, 55],:))
% that plots only some curves
plot (x,y(1:10:end,:),'Color',[0.4940, 0.1840, 0.5560],'LineStyle','-','LineWidth',1.5);
hold on
i = round(numel(x)/2);
% Get the local slope
d = (y(i+1)-y(i))/(x(i+1)-x(i));
X = diff(get(gca, 'xlim'));
Y = diff(get(gca, 'ylim'));
p = pbaspect;
a = (d*p(2)*X/p(1)/Y)*90/pi;
% Display the text
text(x(i), y(i)(1:10:end,:), 'Width=0.7m','FontSize',8,'BackgroundColor', 'w', 'rotation', a); %Error line
%text(x(i), y(i), 'Width=0.7m','FontSize',8,'BackgroundColor', 'w', 'rotation', a); %It is working with this line but only show one label on the curve
hold on

채택된 답변

Ameer Hamza
Ameer Hamza 2020년 10월 19일
This y(i)(1:10:end,:) is not a valid MATLAB syntax. Just use y(i)
text(x(i), y(i), 'Width=0.7m', ...
  댓글 수: 2
muhammad choudhry
muhammad choudhry 2020년 10월 19일
Hi,
please see the graph attached, with this method I only be able to put the lable on the first graph as you can see. I want to put the label on all the graph. How will I approach to do it ?
Ameer Hamza
Ameer Hamza 2020년 10월 19일
You can write a for-loop and to go though each line and add the text.

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Annotations에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by