SURF plot: Data dimensions must agree
    9 views (last 30 days)
  
       Show older comments
    
    Azeem Singh Kahlon
 on 25 May 2020
  
    
    
    
    
    Commented: Hélène Parisot-Dupuis
 on 28 Nov 2023
            I am trying to plot the magnetic field on a rectangular surface (having x and y coordinates). Hence i have a total of 3 values x,y and B (magnetic field). I have tried plotting the surface plot using normal and transposed datasheet in excel but both of them give me the same data dimensions error. Please help me withi this. I am using the following code till now:
dataset=xlsread('import.xlsx');
x = dataset(:,1);
y = dataset(1,:) 
Z = dataset(2:end,2:end)
surf(x,y,Z)   
Please see the attached image for clarification.
thank you
0 Comments
Accepted Answer
  Walter Roberson
      
      
 on 25 May 2020
        dataset=xlsread('import.xlsx');
x = dataset(2:end,1);
y = dataset(1,2:end);
Z = dataset(2:end,2:end);
surf(x, y, Z.', 'edgecolor', 'none')
3 Comments
More Answers (1)
  Hélène Parisot-Dupuis
 on 28 Nov 2023
        
      Edited: Walter Roberson
      
      
 on 28 Nov 2023
  
      Hello,
I have the kind of problem with my code and I don't understand why:
for it=1:2
    xt(it,1)=it
    for jt=1:3
        yt(1,jt)=jt
        zt(it,jt)=it+(jt-1)
    end
end
figure;
surf(xt,yt,zt,'EdgeColor', 'None', 'facecolor', 'interp');
view(2);
colormap(jet(256));
c = colorbar;
Could you help me to find my error please?
Thanks in advance!
3 Comments
  Walter Roberson
      
      
 on 28 Nov 2023
				There are two competing standards for array notation.
- When using x and y coordinates, western mathematics tends to put the x first (as rows) and then the y (as columns) -- so in terms of standard Cartesian coordinates, horizontal distance first then vertical distance
- When using tables of data, such as a table of costs or a table of trigonmetric values, western mathematics tends to refer to row first and then column -- for example you would look on the row for 1983 and then the column for month -- so vertical distance listed first and then horizontal distance
Any programming language that choses one particular representation (rows mean horizontal distance, rows mean vertical distance) will fail on the other one. So the problem is not a "bug" in MATLAB, or a "mis-design": the problem is competing conventions that cannot both be satisfied.
See Also
Categories
				Find more on Surface and Mesh Plots in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


