Error: "Subscripted assignment dimension mismatch."
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
After running this in MATLAB, the correct bar graph is produced but without the error bars. The warning: "Subscripted assignment dimension mismatch." is returned, however I do not understand how.
x=categorical({'Q3','Q6','Q10','Q15','Q30','Q50'});
z=[2.891586318,1.99422657,1.907652812,4.71298388,6.007681496,6.718181667;3.229392123,3.36482536,4.089746011,5.204662107,6.761377397,7.978099976];
y=transpose(z);
a=[0.167797,0.314574,0.081018,0,0.116596,0;0,0.173132,0,0.231752,1.15677,1.204734];
errorplus=a;
errorminus=errorplus;
figure;
bar(x,y);
hBar = bar(y, 0.8);
for k1 = 1:size(y,2)
ctr(k1,:) = bsxfun(@plus, hBar(k1).XData, hBar(k1).XOffset');
ydt(k1,:) = hBar(k1).YData;
end
hold on
errorbar(ctr, ydt, errorplus, '.r')
hold off
ylabel('Signal Intensity','FontSize',18)
set(gca,'linewidth',2,'FontSize',14)
ylim([0 10]);
set(gca,'XTickLabel',x)
1 Kommentar
Tommy
am 24 Apr. 2020
I get a bar graph with error bars and no error. Do you happen to have variables ctr and/or ydt stored in your workspace with sizes other than 2x6? Using clear before running would, I think, solve your problem. Preallocating ctr and ydt would be better, i.e.
ctr = zeros(2,numel(x));
ydt = zeros(2,numel(x));
for k1 = 1:size(y,2)
ctr(k1,:) = bsxfun(@plus, hBar(k1).XData, hBar(k1).XOffset');
ydt(k1,:) = hBar(k1).YData;
end
Antworten (1)
Athul Prakash
am 30 Apr. 2020
I think you need to clear all variables and close all figures before running this code.
Your code is working fine on my MATLAB R2019b and gives the proper bar graph.
If that doesn't solve your issue, please add the error message to your question (include a screenshot) so that we can see exactly what/where the error is. Could you also comment on your MATLAB version?
0 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!