Using a class as a function handle
    5 次查看(过去 30 天)
  
       显示 更早的评论
    
Hi all,
I'm trying to use a class as a function handle. This works perfectly in this case:
k = 8 * ones(1,3) * 1e7;
m = [3.57 3.36 3.14];
c = 0.05 * ones(1,3);
sb = @(x) shearBuilding([x(1) x(2) x(3)],m,c)
sb = sb(k)
sb = 
        k: [3×1 double]
        m: [3×1 double]
        c: [3×1 double]
        h: [3×1 double]
        n: 3
        K: [3×3 double]
        M: [3×3 double]
        C: [3×3 double]
      phi: [3×3 double]
    omega: [3×1 double]
        T: [3×1 double]
     gama: [3×1 double]
sb.k
ans = 3×1
    80000000
    80000000
    80000000
But when I try to use this another class, called 'analiseSismica', that takes the first class (shearBuilding) as argument I got an error.
g = @(x) analiseSismica(sb,sis)
g = g(k)
Operator ':' is not supported for operands of type 'function_handle'.
Error in analiseSismica (line 25)
                    for i = 1:obj.estrutura.n
1 个评论
  Torsten
      
      
 2023-5-14
				Why do you define a function g(x) if the inputs to g don't contain x: 
analiseSismica(sb,sis) 
sb and sis, but no x.
采纳的回答
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Function Creation 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


